Регулярные выражения

ioni

Well-known member
11.05.2006
340
0
#1
Сразу оговорюсь, что тема мне незнакома, поэтому прошу без фырканья.
Любые конструктивные предложения приветствуются

Код:
			preg_match_all('/<img[^>]+>/i', $html, $content);

if (!empty($content[0])) {

echo '<h2 class="center">И вот все изображения из сообщения: '.get_the_title($post->post_parent).'</h2>'."\n".'<p class="center">';

foreach ($content[0] as $key => $value) {

if (preg_match('/thumbnail/', $value)) {
// есть слово thumbnail в имени файла
echo $value."\n";
} else {

echo preg_replace("/(jpg|gif|png)/","thumbnail.$0",$value)."\n";
}
};// foreach
echo '</p><br class="clearall" />';
}; // end if - проверка есть или нету
Скрипт находит все изображения и выводит их так, как они лежат в оригинальном $html

Для моих целей пости достаточно, но хочется красоты

(1) выяснить, если ли вокруг img ссылка - и выводить ее
(2) проверить, если у изображения есть thumbnail - находится ли он локально - то есть проверить, совпадает ли src метка с локальным адресом скрипта, которых хранится в переменной Server_Address
(3) это ваще будет кайф - определить, установлен ли class в <img> и если нет - присвоить скажем class="nativeimage", а если да - то существующий заменить на "nativeimage"

Для меня regexp - темный лес, но чувствую, что все должно быть просто

Помощь?
 

ioni

Well-known member
11.05.2006
340
0
#2
Чувствуется бездна помощи...

Ладно, если с тем не справляетесь - что по-проще?
Мне нужно обрезать текст - но так, чтобы если в нем остались открытые метки, чтобы вернуло все с заркытыми :)
Четкий php, если ему сказали отрезать 200 сантиметров, он столько и отрежет - а надо, чтобы если HTML есть (или BBCODE - не важно) - надо, чтобы возвращал закрытые метки