Ошибка PHP No ending delimiter '�' found in

Писал небольшой скриптик на PHP и вот возникла данная проблема... Появляется ошибка 
No ending delimiter '�' found in. В чем заключалась ошибка и как ее профиксить?


Имеется скрипт, который считывает в массив регулярные выражения из файла txt.


$fp = fopen("sys/01.txt", "r");
$content = '1-2-3';
if ($fp)
{
while (!feof($fp))
{
    $pattern[] = fgets($fp, 999);
}
}
    else echo "Ошибка при открытии файла";
fclose($fp);

01.txt
------------
/1[^>]+3/
/<img src=[^>]+>/
...

 И вот на данном фрагменте и возникает ошибка:

preg_match_all($pattern[0], $content, $link);
print_r($link);

На одном из форумов прочел реплику по поводу ошибки: "В ошибке сказано, что у вас нет закрывающего разделителя (delimiter)."

И вот в чем дело... Файлик с регулярными выражениями сохранен в UTF-8, Тоесть при считывании строки  $pattern[] = fgets($fp, 999); в переменную заносится строка (например /<img src=[^>]+>/) вместе с BOM символами !!!

Тоесть /<img src=[^>]+>/ �, при этом функция preg_match_all расценивает данный символ как модификатор и выдает ошибку.

Поэтому сохраняем файлик без BOM.
если сохраните с ним, то на файлах, где также есть сессии или заголовки, будет ошибка.

Комментариев нет:

Отправить комментарий