Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP & RegExp
 
 автор: Privatas   (18.07.2008 в 19:31)   письмо автору
 
 

Здравствуйте!
У меня вопрос: что у меня не правильно?? ))

Есть HTML-код странички, мне нужно заменить
* то что между <nobr> (можно вместе с тегом) на пробел
* то что между <span> (можно вместе с тегом) на пробел
* <b>, </b> на <strong>, </strong>

Вот мой скрипт (код странички находится в $konk_pages):
$result = preg_replace( "/<nobr>(.+)<\/nobr>/", ' ', $konk_pages );
$result = preg_replace( "/<span class=a>(.+)<\/span>/", ' ', $konk_pages );
$result = preg_replace( "/<b>/", '/<strong>/', $konk_pages );
$result = preg_replace( "/<\/b>/", '/<\/strong>/', $konk_pages );

Помогите плиз, кто чем может))

   
 
 автор: BinLaden   (19.07.2008 в 00:44)   письмо автору
 
   для: Privatas   (18.07.2008 в 19:31)
 

Замените в "(.+)" на "(.+?)" в первых двух паттернах. Во последних двух неправильно указали второй аргумент - там не паттерн должен быть, а просто строки "<strong>" и "</strong>".

Но вместо preg_replace() в последних двух случаях используют str_replace()

   
 
 автор: Privatas   (21.07.2008 в 12:18)   письмо автору
 
   для: BinLaden   (19.07.2008 в 00:44)
 

Спасибо!

А вот так будет правильно?
preg_replace( "/<nobr>(.+?)<\/nobr>/", ' ', $result );
preg_replace( "/<span class=a>(.+?)<\/span>/", ' ', $result);

$b = array("<b>","</b>");
$s = array("<strong>","</strong>");
str_replace( #b, $s, $result);

или последнюю часть надо писать вот так:
str_replace( "/<b>/", "/<strong>/", $result);
str_replace( "/<\/b>/", "/<\/strong>/", $result);

   
 
 автор: BinLaden   (21.07.2008 в 15:19)   письмо автору
 
   для: Privatas   (21.07.2008 в 12:18)
 

<?php
$result 
preg_replace"/<nobr>(.+?)<\/nobr>/"' '$result );
$result preg_replace"/<span class=a>(.+?)<\/span>/"' '$result);
$result str_replace(array("<b>","</b>"), array("<strong>","</strong>"), $result);
?>

   
 
 автор: Privatas   (21.07.2008 в 15:29)   письмо автору
 
   для: BinLaden   (21.07.2008 в 15:19)
 

СПАСИБО !
Теперь всё работает)) Очень помогли))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования