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

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

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

 

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

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

тема: Замена пути к изображению
 
 автор: Fix   (12.12.2008 в 14:53)   письмо автору
 
 

Есть большой текст, где много картинок. Нужно изменить для каждой картинки адрес:

Был: <img border="0" src="12_2.jpg" width="600" height="842">
Стал: <img border="0" src="/pics/issues/12_2.jpg" width="600" height="842">


Код

$articles_cat[] = 'path'; // выше генерируется массив, не стану приводить его код
$exp_dir[] = 'path'; // выше генерируется массив, не стану приводить его код
$txt = '... много текста
обусловлено плотным контактом CD31-позитивных клеток сердца с СКЖТ.<br>
*p&lt;0,01.</p>

<p ALIGN="LEFT" DIR="LTR">
<img border="0" src="12_2.jpg" width="600" height="842"><br>
</span><span LANG="EN"><br>
<br>
<br>
</span><span LANG="RU">Рис. 5. Дифференцировка с-kit-позитивных клеток, 
выделенных из мышечной части аневризмы сердца .... много текста';
$newtxt = preg_replace('!<img[^>]+src="(.+)"[^>]*>!Uis', '<img src="/pics/'.$articles_cat_s[1].'/'.$exp_dir[2].'/$1" />', $txt);

print $newtxt;

Почему-то не заменяет адреса... Что не так?

$newtxt = preg_replace('!<img src="(.+)">!Uis', '<img src="/pics/'.$articles_cat_s[1].'/'.$exp_dir[2].'/$1" />', $txt);
тоже ничего не дает...

  Ответить  
 
 автор: xx77   (13.12.2008 в 00:40)   письмо автору
 
   для: Fix   (12.12.2008 в 14:53)
 

вроде всё работает,
не считая
Notice: Undefined variable: articles_cat_s
и сделал
$articles_cat_s[1] = 'path1';
exp_dir[2] = 'path2';
$newtxt = preg_replace('!<img[^>]+?src="([^">]+)"[^>]*>!is', '<img src="/pics/'.$articles_cat_s[1].'/'.$exp_dir[2].'/$1" />', $txt);
print htmlspecialchars($newtxt);

  Ответить  
 
 автор: Fix   (14.12.2008 в 15:57)   письмо автору
 
   для: xx77   (13.12.2008 в 00:40)
 

Работает, спасибо! Кое-что пришлось изменить, но в целом работает )

  Ответить  
 
 автор: Mynameis   (15.12.2008 в 10:10)   письмо автору
 
   для: Fix   (14.12.2008 в 15:57)
 

Я бы через str_replace сделал бы

  Ответить  
Rambler's Top100
вверх

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