[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Парсинг, регулярные выражения.
vestmar
Добрый день, задача такая

есть страница html, с контентом


<body>
<div
id="wrapper">

<div><p>
bla bla bla</p></div>

<div><img
src="images.jpg" /><p>bla bla</p></div>

<div><p>
bla bla bla bla <a href="next.page">link</a> bla</p><img src="images.jpg" /></div>

</div>
</body>



Нужно силами php заменить содержимое того дива где длиннее всего текст, в нём (в диве) могут попадаться сслыки (<a></a>) на слово TEXT

могут быть переносы строки, много ссылок и картинок, но главное вычислить самый длинный контентный DIV и оставить <div><p>TEXT</p></div>

Подскажите пожалуйста)!

Игорь_Vasinsky
длину текста считать не умеешь?
+preg_replace

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
vestmar
Добрый день) Я Вам пишу в скайп и вчера писал! Разобрался я пока ждал ответа, парсю чисто текст меду >< измеряю длину и готово!
Игорь_Vasinsky
как то не до скайпа было видимо)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
$str = '<div id="wrapper">

<div><p>bla bla bla</p></div>

<div><img src="images.jpg" /><p>bla bla</p></div>

<div><p>bla bla bla bla <a href="next.page">link</a> bla</p><img src="images.jpg" /></div>

</div>'
;

preg_match_all("#<div>(.*)</div>#uU", $str, $matches);

$maxLen = 0;

if(!empty($matches[0])){
foreach($matches[0] as $k=>$v){
if($maxLen< mb_strlen($v, 'utf-8')){
$maxLen = mb_strlen($v, 'utf-8');
$elMaxLen = $v;
}
}
}


echo preg_replace("#".$elMaxLen."#u", "<div>Когда то был самым большим блоком((</div>", $str);
[php]

<div id="wrapper">

<div><p>
bla bla bla</p></div>

<div><img
src="images.jpg" /><p>bla bla</p></div>

<div>
Когда то был самым большим блоком((</div>

</div>


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

код написан под юникод

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.