30 октября 2024
Нет комментариев
function getSingleIfRepeatedTwiceWithSpace($text){ if(preg_match('/^(.+)\s\1$/',$text,$matches)){ return $matches[1]; } return $text; }
function getSingleIfRepeatedTwiceWithSpace($text){ if(preg_match('/^(.+)\s\1$/',$text,$matches)){ return $matches[1]; } return $text; }
Удалить непечатаемые символы
$item['content']=preg_replace('/[[:cntrl:]]/','',$item['content']);
Еще вариант
$item['content']=preg_replace('/[\x00-\x1F\x7F]/','',$item['content']);
Оставить перенос строк \r и \n
$item['content']=preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/','',$item['content']);
https://stackoverflow.com/questions/1497885/remove-control-characters-from-php-string
Также в случае отсутствия gclid и utm определять источник по $_SERVER[‘HTTP_REFERER’] учитывая домены поисковых систем.
$seo_params=array('ga_cid','gclid','utm_source','utm_medium','utm_campaign','utm_content','utm_term'); $seo_cookies=$seo_cookies_default=array(); foreach($seo_params as $sp){ switch($sp){ case 'gclid': $seo_cookies_default[$sp]='NULL'; break; case 'utm_source': $seo_cookies_default[$sp]='direct'; break; default: $seo_cookies_default[$sp]='none'; break; } } $update_cookies=false; if(isset($_GET['gclid'])&&$_GET['gclid']!=''){ $update_cookies=true; foreach($seo_params as $sp){ switch($sp){ case 'gclid': $seo_cookies[$sp]=$_GET[$sp]; break; case 'utm_source': $seo_cookies[$sp]='google'; break; case 'utm_medium': $seo_cookies[$sp]='cpc'; break; default: if(stristr($sp,'utm_')&&isset($_GET[$sp])&&$_GET[$sp]!=''){ $seo_cookies[$sp]=$_GET[$sp]; } else{ $seo_cookies[$sp]='none'; } break; } } } else{ $is_utm=false; foreach($seo_params as $sp){ if(stristr($sp,'utm_')&&isset($_GET[$sp])&&$_GET[$sp]!=''){ $seo_cookies[$sp]=$_GET[$sp]; $is_utm=true; $update_cookies=true; } else{ $seo_cookies[$sp]='none'; } } if(!$is_utm){ $referer=$_SERVER['HTTP_REFERER']; if($referer!=''){ $parse_referer=parse_url($referer); $referer_domain=$parse_referer['host']; if($referer_domain!=''&&$referer_domain!=$_SERVER['HTTP_HOST']){ $update_cookies=true; $organics=array('google','yandex','bing'); $is_organic=false; foreach($organics as $organic){ if(stristr($referer_domain,$organic)){ $is_organic=true; foreach($seo_params as $sp){ switch($sp){ case 'utm_source': $seo_cookies[$sp]=$organic; break; case 'utm_medium': $seo_cookies[$sp]='organic'; break; default: if(stristr($sp,'utm_')){ $seo_cookies[$sp]='none'; } break; } } } } if(!$is_organic){ foreach($seo_params as $sp){ switch($sp){ case 'utm_source': $seo_cookies[$sp]=$referer_domain; break; case 'utm_medium': $seo_cookies[$sp]='referral'; break; default: if(stristr($sp,'utm_')){ $seo_cookies[$sp]='none'; } break; } } } } } } } if($_COOKIE['_ga']!=''){ $ga_cookie_split=explode('.',$_COOKIE['_ga']); if($ga_cookie_split[2]&&$ga_cookie_split[3]){ $ga_cid=$ga_cookie_split[2].'.'.$ga_cookie_split[3]; $seo_cookies['ga_cid']=$ga_cid; } } foreach($seo_params as $sp){ if($update_cookies||!isset($_COOKIE['local_'.$sp])||$sp=='ga_cid'){ $cv=($seo_cookies[$sp]!='')?$seo_cookies[$sp]:$seo_cookies_default[$sp]; setcookie('local_'.$sp,$cv,time()+31536000,'/',$_SERVER['HTTP_HOST']); $_COOKIE['local_'.$sp]=$cv; } } function add_seo_params_to_letter(){ global $seo_params; $text='<hr/>'; foreach($seo_params as $sp){ $text.=$sp.': '.$_COOKIE['local_'.$sp]."<br/>"; } return $text; }
Функция add_seo_params_to_letter
используется для добавления в письма сохраненных данных.
Например в modx:
// /core/components/formit/model/formit/fihooks.class.php public function email(array $fields=array()){ // ... $message.=add_seo_params_to_letter(); // ... }
Для работы сайта на 2 доменах одновременно без переадресации в wp-config.php
if($_SERVER['HTTP_HOST']=='krylov.eu.org'){ define('WP_SITEURL','https://krylov.eu.org'); define('WP_HOME','https://krylov.eu.org'); } else{ define('WP_SITEURL','https://krylov.org.ua'); define('WP_HOME','https://krylov.org.ua'); }
RSA-подпись SHA-512 hash от строки $text
Алгоритм создания и проверки подписи: SHA512withRSA
$private_key='<<<EOD -----BEGIN RSA PRIVATE KEY----- '.PRIVATE_KEY.' -----END RSA PRIVATE KEY----- EOD'; $signature=''; openssl_sign($text,$signature,$private_key,'SHA512'); $data=array( 'signature'=>base64_encode($signature), );
использовать get_stylesheet_directory_uri()
вместо get_template_directory_uri()
functions.php
темы
if(function_exists('register_sidebar')){ register_sidebar(array( 'id'=>'header_contacts', 'name'=>'HeaderContacts', 'before_widget'=>'', 'after_widget'=>'', 'before_title'=>'', 'after_title'=>'', )); }
в месте отображения:
<?php dynamic_sidebar( 'header_contacts' ); ?>