Архив

2015 год

Всего: 61 запись

php: найти все email в html документе

function find_emails($text){
	$emails=array();
	preg_match_all('/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})/',$text,$potential_emails,PREG_SET_ORDER);
	for($i=0;$i<count($potential_emails);$i++){
		$potential_email=$potential_emails[$i][0];
		if (filter_var($potential_email,FILTER_VALIDATE_EMAIL)){
			if (!in_array($potential_email,$emails)){
				$emails[]=$potential_email;
			}
		}
	}
	return $emails;
}

php: обернуть все email в html документе ссылками mailto:

function htmlizeEmails($text){
	preg_match_all('/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})/',$text,$potentialEmails,PREG_SET_ORDER);
	$potentialEmailsCount=count($potentialEmails);
	for($i=0;$i<$potentialEmailsCount;$i++){
		if(filter_var($potentialEmails[$i][0],FILTER_VALIDATE_EMAIL)){
			$text=str_replace($potentialEmails[$i][0],'<a href="mailto:'.$potentialEmails[$i][0].'">'.$potentialEmails[$i][0].'</a>',$text);
		}
	}
}

Использование:

$str="Send me an email to [email protected].";
echo htmlizeEmails($str);
//Echoes "Send me an email to <a href="mailto:[email protected]">[email protected]</a>."

http://stackoverflow.com/questions/9763606/detecting-emails-in-a-text

php: header Last-Modified

$LastModified_unix=1234567890;//time()
$LastModified=gmdate("D, d M Y H:i:s \G\M\T",$LastModified_unix);
$IfModifiedSince=false;
if(isset($_ENV['HTTP_IF_MODIFIED_SINCE'])){
	$IfModifiedSince=strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'],5));
}
if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])){
	$IfModifiedSince=strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'],5));
}
if($IfModifiedSince&&$IfModifiedSince>=$LastModified_unix){
	header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified');
	exit;
}
header('Last-Modified: '.$LastModified);

htaccess: Дубли страниц с несколькими слешами подряд в URL

Усовершенствованный вариант: https://krylov.org.ua/htaccess-dubli-stranits-s-neskolkimi-slesham-2/

Необходимо настроить 301 редирект со всех страниц, где в теле URL больше одного слеша подряд (за исключением http:// и знаков «/» в конце URL) на аналогичные URL с одним знаком «/».
Также необходимо настроить 301 редирект со всех страниц, где в конце URL присутствует знак «/» на аналогичные URL без знака «/».

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]