Архив

Ноябрь 2017

Всего: 9 записей

php curl get location header

Нужно используя CURL просто получить URL перенаправления, но не переходить по нему внутри CURL.

$post_fields=array(
	"field1"=>$value1,
	"field2"=>$value2,
);
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,'https://site.ru/path/');
curl_setopt($curl,CURLOPT_HEADER,1);
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,false);
curl_setopt($curl,CURLOPT_POSTFIELDS,$post_fields);
$res=curl_exec($curl);
curl_close($curl);
preg_match_all('/^Location:(.*)$/mi',$res,$matches);
if(!empty($matches[1])){
	header("Location: ".trim($matches[1][0]),true,301);
}
exit();

php mail восклицательный знак пробел

При отправке писем, используя функцию php mail(), при появлении в сообщении в произвольных на первый взгляд местах символов "! " (восклицательный знак и пробел) — вручную добавить переносы строк:

$crlf="\r\n";
$message.='...text'.$crlf;

Проблема из-за ограничения длины строки (вероятно возможно где-то увеличить этот лимит, но надежнее добавить переносы строк, чтобы избежать проблем при переносе сайта на другой сервер с default настройками).

AMP WordPress html-код внутри pre

Используются плагины: AMP for WP — Accelerated Mobile Pages for WordPress, WP-GeSHi-Highlight.
Синтаксис внутри pre подсвечиваться конечно не будет.
В файл functions.php активной темы:
</pre > заменить на </pre> т.е. без пробела

function echapcode($a){
	return "<pre $a[1]>".htmlspecialchars($a[2])."</pre >";
}
$texte=preg_replace_callback('#<pre (.*?)>(.*?)</pre >#ius','echapcode',$text);
add_filter('the_content','new_pre_content');
function new_pre_content($content){
	if(function_exists('ampforwp_is_amp_endpoint')&&ampforwp_is_amp_endpoint()){
		$content=preg_replace_callback('#<pre (.*?)>(.*?)</pre >#ius','echapcode',$content);
	}
	return $content;
}