Klaus
SEO Cthulhu
скрипт внезапно завершает работу на связке двух функций, без ошибок
В двух словах звучит так (я сам понимаю что это абсурд):
преобразовав какую-то сущность (html_entity_decode), php движок заставляет preg_replace работать как exit()
причем завершает работу корректно, процесс не остается висеть.
Читаем txt файл в строку, и пытаемся проделать некоторые манипуляции.
Скрипт завершает работу на строке 11, не проделав и половины необходимого, и без каких либо ошибок.
Mесто, где скрипт падает, а точнее причину, НЕ обнаружить, т.к. любая манипуляция(редактирование) с txt файлом приводит к тому, что скрипт нормально работает.
Также скрипт работает если сделать trim или не делать html_entity_decode.
Помогите братцы разобраться в этом бедламе.
Собсно интересует только причина завершения работы скрипта на preg_replace БЕЗ каких либо ошибок.
Дабы не попасть впросак в будущем.
Про тхт файл могу сказать только, что в конце есть символ end_of_line (\00 видимо), но как я уже сказал, трудно понять в нем ли причина, т.к. любое редактирование файла приводит к работоспособности.
Наглядно можно протестировать здесь: здесь (ссылка)
P.S. PHP Version 5.0.4, Apache 2.0 Handler
P.P.S. ох и задал же он мне трепку, т.к. завершается без ошибки, и пришлось практически построчно искать где именно, а кода там на пару К строк.
В двух словах звучит так (я сам понимаю что это абсурд):
преобразовав какую-то сущность (html_entity_decode), php движок заставляет preg_replace работать как exit()
причем завершает работу корректно, процесс не остается висеть.
PHP:
<?
ob_implicit_flush();
error_reporting(E_ALL);
for($i=0;$i<250;$i++) echo "<!-- -->";
echo $blabla; // здесь ошибка, чтобы вам было видно, что ошибки отображаются
echo "line " . __LINE__ . "<br>"; // строка 6
$var = file_get_contents("test.txt");
echo "line " . __LINE__ . "<br>"; // строка 8
$var = html_entity_decode($var);
echo "line " . __LINE__ . "<br>"; // строка 10
$var = preg_replace("/^.+?(\<body.+?\/body\>).+?$/is", "$1", $var);
echo "line " . __LINE__ . "<br>"; // строка 12
echo "<pre><xmp>"; print_r($var); echo "</xmp></pre>";
?>
Скрипт завершает работу на строке 11, не проделав и половины необходимого, и без каких либо ошибок.
Mесто, где скрипт падает, а точнее причину, НЕ обнаружить, т.к. любая манипуляция(редактирование) с txt файлом приводит к тому, что скрипт нормально работает.
Также скрипт работает если сделать trim или не делать html_entity_decode.
Помогите братцы разобраться в этом бедламе.
Собсно интересует только причина завершения работы скрипта на preg_replace БЕЗ каких либо ошибок.
Дабы не попасть впросак в будущем.
Про тхт файл могу сказать только, что в конце есть символ end_of_line (\00 видимо), но как я уже сказал, трудно понять в нем ли причина, т.к. любое редактирование файла приводит к работоспособности.
Наглядно можно протестировать здесь: здесь (ссылка)
P.S. PHP Version 5.0.4, Apache 2.0 Handler
P.P.S. ох и задал же он мне трепку, т.к. завершается без ошибки, и пришлось практически построчно искать где именно, а кода там на пару К строк.