Простой вопрос по регулярным выражениям

123
J4
На сайте с 21.05.2009
Offline
99
#11

Снова я! И снова у меня вопрос по рег выражениям. Вопрос простой (не понимаю почему в dreamweaver у меня самого не получается реализовать данную фишку): файл html содержит много статей вида

<h2>Название</h2> здесь какой-то текст <img src="images\абракадабра.jpg" border="0" width="400" height="219" alt="абракадабра.jpg " /> еще какой-то текст

Хочу сделать

<h2>Название</h2> здесь какой-то текст <img src="images\абракадабра.jpg" border="0" width="400" height="219" alt="Название " /> еще какой-то текст

j1gs4w88 добавил 08.01.2010 в 12:46

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

J4
На сайте с 21.05.2009
Offline
99
#12

Предыдущую проблему решил, возникла еще одна. Нужно удалить все вхождения тегов </li><li> после тега [[more]]. Попробовал сделать сам в дримвивере и не врублю что-то на что менять данное выделение [[more]](.*)(<\/li><li>*)(.*)<h1> ? Да и вообще правильно ли я написал? Дримвивер то выделяет, но я не уверен что все </li><li> будут удалены.

Спасибо за помощь.

J4
На сайте с 21.05.2009
Offline
99
#13

Народ помогите плиз с последним заданием, очень нужно.

[Удален]
#14

задачу подробнее объясни, желательно с примерами того что ЕСТЬ и что НАДО получить.

J4
На сайте с 21.05.2009
Offline
99
#15

Есть большой html файл который содержит статьи оформленные

<h1>Название</h1>

Любой текст и теги. [[more]] текст и теги а также теги вида </li><li> текст</li><li>(кол-во тегов ли может быть разное)

<h1>новая статья</h1>

Требуется удалить все теги </li><li> между [[more]] и <h1>, при этом остальной текст между данными границами сохранить.

[Удален]
#16

тут не регуляркой решать можно и я бы даже сказал НУЖНО.


<?
header("Content-type: text/html; charset=utf-8");

$text = "<h1>Название</h1></li><li> текст</li><li></li><li> текст</li><li></li><li> текст</li><li>
Любой текст и теги. [[more]] текст и теги а также теги вида </li><li> текст</li><li>(кол-во тегов ли может быть разное)";

$text = explode("[[more]]", $text);
$text[0] = preg_replace("#</li>\s*<li>#ismu", "", $text[0]);
$text = join("[[more]]",$text);

echo $text;

регуляркой я только пробельные символы "навсякий" почистил

J4
На сайте с 21.05.2009
Offline
99
#17

Получился какой то бред :

1.первая статья начинается с [[more]] (все что было до этого удалено) теги </li><li> никуда не исчезли.

2. У остальных статей теги </li><li> никуда не исчезли.

[Удален]
#18

покажите код который испольовали ВЫ и статью номер 1 к примеру. у меня все прекрасно работает :)

J4
На сайте с 21.05.2009
Offline
99
#19

<?

$text = "<h1>Категория1</h1>

<h2>название1</h2>

<img src='путь' alt='альт' /><ul><em><li>строка1</li><li>строка2</li><li>строка3</li><li>строка4</li></em></ul>[[more]]<p>текст</li><li>продолжение текста</li><li>окончание текста</p>

<h1>Категория2</h1>

<h2>название2</h2>

<img src='путь' alt='альт' /><ul><em><li>строка1</li><li>строка2</li><li>строка3</li><li>строка4</li></em></ul>[[more]]<p>текст</li><li>продолжение текста</li><li>окончание текста</p>

<h1>Категория3</h1>

<h2>название3</h2>

<img src='путь' alt='альт' /><ul><em><li>строка1</li><li>строка2</li><li>строка3</li><li>строка4</li></em></ul>[[more]]<p>текст</li><li>продолжение текста</li><li>окончание текста</p>";

$text = explode("[[more]]", $text);

$text[0] = preg_replace("#</li>\s*<li>#ismu", "", $text[0]);

$text = join("[[more]]",$text);

echo $text;

?>

число строк до тега [[more]] может быть любым, так же как и кол-во </li><li> после тега [[more]]

[Удален]
#20

понял недоразумение :)

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

лечится убиранием модификатора в регулярке

preg_replace("#</li>\s*<li>#ismu", "", $text[0]);

заменить на

preg_replace("#</li>\s*<li>#ism", "", $text[0]);
123

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