|
|
|
|
$search = array ("'<script[^>]*?>.*?</script>'si", // Вырезается javascript
"'<[\/\!]*?(?(^img)[^img]|[^<>])*?>'si", // Вырезаются html-тэги кроме картинок
"'src=\"\/'si", //поищем изображения без абсолютного пути
"'([\r\n])[\s]+'", // Вырезается пустое пространство
"'&(quot|#34);'i", // Замещаются html-элементы
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(\d+);'e"); // вычисляется как php
$replace = array ("",
"",
"src=\"http://$host/", // дополним линк до абсолютного
"\\1",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\\1)");
$text = preg_replace ($search, $replace, $content);
$text = $author.",".$authors_mail.$text;
echo $text;
|
вот так - работает, но стоит убрать это - как всё, вылетаем с ошибками:
Compilation failed: assertion expected after (?( at offset 12 в строке такой-то, в модуле таком то... | |
|
|
|
|
|
|
|
для: dzfelix
(09.09.2007 в 11:12)
| | > вот так - работает, но стоит убрать это
Что убрать? | |
|
|
|
|
|
|
|
для: dzfelix
(09.09.2007 в 11:12)
| | код, помимо echo-вывода, создает три переменные.
Попробуйте строку $text = preg_replace ($search, $replace, $content);
поменять на строку $text = $content;
По сути - отключите преобразование.
По форме - контекст останется неизменным. | |
|
|
|
|
|
|
|
для: Trianon
(09.09.2007 в 13:05)
| | > По форме - контекст останется неизменным.
То есть?
$text = $author.",".$authors_mail.$text; | |
|
|
|
|
|
|
|
для: kasmanaft
(09.09.2007 в 13:56)
| | а эту строку я менять не предлагал. | |
|
|
|
|
|
|
|
для: Trianon
(09.09.2007 в 13:05)
| | простите.
$content - задана ранее,
а при том как убираешь вывод на экран как раз и вылетает та самая бякость, которую указал | |
|
|
|
|
|
|
|
для: dzfelix
(09.09.2007 в 20:19)
| | ну тогда внимательно смотрите что за assertion.
Может в этом месте echo вообще писать нельзя? | |
|
|
|