Прошу помощи

unlimbox
На сайте с 03.01.2008
Offline
56
444

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

Текст заключен между следуюющими строками:

onmouseover='showDiv(false,"

....текст новости......

", "aboutDivClass",event,"Подождите")' onmouseout='hideDiv()'

Помогите кодом на ПХП, который бы находил эти строки и удалял их вместе с содержимым, находящимся между ними.

Заранее спасибо.

JamBlog.ru (http://jamblog.ru)
Loko
На сайте с 28.01.2007
Offline
101
#1

первое, что на ум пришло.


<?php

$text="bla-bla
onmouseover='showDiv(false,\"
....текст новости......
\", \"aboutDivClass\",event,\"Подождите\")' onmouseout='hideDiv()'
bla-bla
";
$first="onmouseover='showDiv(false,\"";
$second="\", \"aboutDivClass\",event,\"Подождите\")' onmouseout='hideDiv()'";

//определяем начало "текста новости"
$start=strpos($text,$first,0)+strlen($first);

//определяем конец "текста новости"
$end=strpos($text,$second,0);

//засовываем "текст новости" в переменную
$news=substr($text,$start,$end-start);

//Вырезаем по очереди
$text=str_replace($first,"",$text);
$text=str_replace($end,"",$text);
$text=str_replace($news,"",$text);

?>

пысы. я сие чудное творение не запускал, так что могут быть ошибки.

пыпысы. Наверное можно использовать регулярные выражения и ког получится компактнее ;)

пыпыпысы. Почему бы не исправить этот прикол еще на стадии добавления?

mfl
На сайте с 16.10.2006
Offline
134
mfl
#2

на рег выражениях в одну строку все делается

<?php

$text="bla-bla
onmouseover='showDiv(false,\"
....текст новости......
\", \"aboutDivClass\",event,\"Подождите\")' onmouseout='hideDiv()'
bla-bla
";
// вставляем нужный текст
$text=preg_replace("~(onmouseover='showDiv\(false,\").*(\", \"aboutDivClass\",event,\"Подождите\"\)' onmouseout='hideDiv\(\)')~s", "$1нужный текст$2", $text);
// или вообще удаляем эту строку
//$text=preg_replace("~(onmouseover='showDiv\(false,\").*(\", \"aboutDivClass\",event,\"Подождите\"\)' onmouseout='hideDiv\(\)')~s", "", $text);
print $text;
?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий