Писал небольшой скриптик на 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.
если сохраните с ним, то на файлах, где также есть сессии или заголовки, будет ошибка.
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.
если сохраните с ним, то на файлах, где также есть сессии или заголовки, будет ошибка.
Комментариев нет:
Отправить комментарий