Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск и замена текста между тегами. Помогите составить регулярку

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
asciibit
Отправлено: 07 Ноября, 2009 - 13:17:09
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Есть текст
CODE (text):
скопировать код в буфер обмена
  1.  $text = "<p><strong>привет народ</strong>привет народ</p>";


нужно найти и заменить слово привет между тегами <p> но не трогая это же слово между тегами <strong>.
т.е сделать замену слова только между тэгами <p> минуя при этом все другие тэги которые могут быть заключены между тегами<p>

надеюсь правильно поставил вопрос.

Заранее спасибо : )
 
 Top
Ch_chov
Отправлено: 07 Ноября, 2009 - 18:29:30
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Если нужно конкретно для этого текста то:
PHP:
скопировать код в буфер обмена
  1. str_replace('</strong>привет', '</strong>', $text);
или preg_replace
 
 Top
SAD
Отправлено: 07 Ноября, 2009 - 18:43:28
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




дабы не создавать тему, как из строки удалить первые n символов и последний?
 
 Top
Ch_chov
Отправлено: 07 Ноября, 2009 - 18:56:33
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




 
 Top
SAD
Отправлено: 07 Ноября, 2009 - 19:04:49
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




а если это будет файл, N -кол-во строк
и в каждой строке нужно проделать то, что я просил?

(Отредактировано автором: 07 Ноября, 2009 - 19:07:24)

 
 Top
asciibit
Отправлено: 07 Ноября, 2009 - 19:16:34
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Ch_chov пишет:
Если нужно конкретно для этого текста то:
PHP:
скопировать код в буфер обмена
  1. str_replace('</strong>привет', '</strong>', $text);
или preg_replace


между тегами <p> могут быть не только теги <strong> но и любые другие. мне нужно сделать так чтобы менялось слово только в тексте, т.е между тегами <p> но при этом не заменяя в других тегах..например в заголовках или выделенный текст.
 
 Top
Ch_chov
Отправлено: 07 Ноября, 2009 - 19:51:36
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




PHP:
скопировать код в буфер обмена
  1. а если это будет файл, N -кол-во строк
Разбей файл на строки.


asciibit ищи хоть какую нибудь регулярность в файле, иначе тебе даже рег. выражения не помогут. Разве что, какой нибудь парсер html создавать.
 
 Top
SAD
Отправлено: 07 Ноября, 2009 - 19:56:25
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




такой вопрос, я удаляю строки из файла с помощью unset(), и заметил, что кол-во строк ограниченное удаляется, то есть должно например удалить 300 строк, а удаляет 80. почему так?
 
 Top
Ch_chov
Отправлено: 07 Ноября, 2009 - 19:58:02
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Цитата:
удаляю строки из файла с помощью unset()
это как?
 
 Top
SAD
Отправлено: 07 Ноября, 2009 - 20:03:48
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




PHP:
скопировать код в буфер обмена
  1. $file=file("keno.txt");
  2.       for($i=0;$i<sizeof($file)-20;$i++)
  3.         unset($file[$i]);
 
 Top
asciibit
Отправлено: 07 Ноября, 2009 - 20:09:27
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Ch_chov спасибо.

больше никаких вариантов?
 
 Top
Ch_chov
Отправлено: 07 Ноября, 2009 - 20:14:51
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Тут ты удаляешь не строки из файла, а элементы из массива.
Сделай отладку.
 
 Top
SAD
Отправлено: 07 Ноября, 2009 - 20:17:57
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Ch_chov пишет:
Тут ты удаляешь не строки из файла, а элементы из массива.
Сделай отладку.

но я потом перезаписываю в файл, но все таки, почему не все удаляет, а часть?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB