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]   

> Описание: Переделывание одной строки в другую
Haron
Отправлено: 21 Июня, 2010 - 19:31:27
Post Id



Частый гость


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


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




Предложите пожалуйста, как можно строку вида -
CODE (html):
скопировать код в буфер обмена
  1. <img src="../images/image_name.jpg" width="155" height="103" />


переделать вот в такой вот вид?
CODE (html):
скопировать код в буфер обмена
  1. <a href="images/image_name.jpg" class="thickbox"><img src="images/image_name.jpg" width="155" height="103" /></a>


Заранее спасибо Улыбка


-----
И чё?
 
 Top
Tonik992
Отправлено: 22 Июня, 2010 - 01:00:34
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Июнь 2010  


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




PHP:
скопировать код в буфер обмена
  1. $sometext = '<img src="../images/image_name.jpg" width="155" height="103" />';
  2. $pattern = "/(?<=<img src=\")(?:[\.]{0,2}[\/]{0,1})([^\"]+)/";
  3. preg_match($pattern,$sometext,$matches);
  4. $result = preg_replace("/<img src=\"[^\"]+\"([^\>]+)>/", '<a href="'.$matches[1].'" class="thickbox"><img src="'.$matches[1].'$1></a>', $sometext,1);
  5. echo $result;


CODE (html):
скопировать код в буфер обмена
  1. <a href="images/image_name.jpg" class="thickbox"><img src="images/image_name.jpg width="155" height="103" /></a>

$sometext - может быть любой текст, предложение, "война и мир", ищет одно вхождение <img src..> и заменяет соответственно как ты просил

А можно было бы и в 100 раз сделать проще, если $sometext - строго картинка без лишнего содержимого

(Отредактировано автором: 22 Июня, 2010 - 01:04:46)

 
 Top
Uchkuma
Отправлено: 25 Июня, 2010 - 10:55:57
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




Haron пишет:
Предложите пожалуйста, как можно строку вида -
CODE (html):
скопировать код в буфер обмена
  1. <img src="../images/image_name.jpg" width="155" height="103" />


переделать вот в такой вот вид?
CODE (html):
скопировать код в буфер обмена
  1. <a href="images/image_name.jpg" class="thickbox"><img src="images/image_name.jpg" width="155" height="103" /></a>


Заранее спасибо :)

Есть масса способов. Вы не описали толком свою задачу.

Tonik992, а так не проще?

PHP:
скопировать код в буфер обмена
  1. $text = '<img src="../images/image_name.jpg" width="155" height="103" />';
  2. $pattern = '/<img ([^>]*)src="\.\.\/([^"]+)"([^>]*)>/';
  3. $replace = '<a href="$2" class="thickbox"><img $1src="$2"$3></a>';
  4.  
  5. echo preg_replace($pattern, $replace, $text);

(Отредактировано автором: 27 Июня, 2010 - 19:01:27)

 
 Top
movEAX
Отправлено: 26 Июня, 2010 - 12:04:55
Post Id



Частый посетитель


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


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




PHP:
скопировать код в буфер обмена
  1. $pattern = '@(<img src="(.+)"[^>]+>)@U';
  2. $replacement = '<a href="$2" class="thickbox">$1</a>';
  3. preg_replace($pattern, $replacement, $text);

И никаких лишних телодвижений Хорошо


-----
армия.. самое убогое место
 
 Top
Uchkuma
Отправлено: 27 Июня, 2010 - 18:58:47
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




movEAX пишет:
PHP:
скопировать код в буфер обмена
  1. $pattern = '@(<img src="(.+)"[^>]+>)@U';
  2. $replacement = '<a href="$2" class="thickbox">$1</a>';
  3. preg_replace($pattern, $replacement, $text);

И никаких лишних телодвижений ::cool24.gif::

Не совсем. Чуваку надо было убрать "../" из исходного пути к изображению.
 
 Top
movEAX
Отправлено: 28 Июня, 2010 - 00:18:28
Post Id



Частый посетитель


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


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




Не заметил =) ну тогда что-нибудь из этого сгодится
PHP:
скопировать код в буфер обмена
  1. $pattern = array('@(<img src="(.+)"[^>]+>)@U','@\.\./@');
  2. $replacement = array('<a href="$2" class="thickbox">$1</a>','');
  3. preg_replace($pattern, $replacement, $text);


PHP:
скопировать код в буфер обмена
  1. $pattern = '@(<img src=")\W+(.+?)("[^>]+?>)@';
  2. $replacement = '<a href="$2" class="thickbox">$1$2$3</a>';
  3. preg_replace($pattern, $replacement, $text);
  4.  


-----
армия.. самое убогое место
 
 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