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 :: Взять img в тег div

 PHP.SU

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


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

> Без описания
riv
Отправлено: 10 Мая, 2012 - 15:00:04
Post Id



Гость


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


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




CODE (html):
скопировать код в буфер обмена
  1. <img scr="kartinka1" /><br /><img scr="kartinka2" /><br /><img scr="kartinka3" /><br /><img scr="kartinka4" /><br /><img scr="kartinka5" /><br /><img scr="kartinka6" />

хочу получить
CODE (html):
скопировать код в буфер обмена
  1. <div class="1"><img scr="kartinka1" /></div><br /><div class="1"><img scr="kartinka2" /></div><br /><div class="1"><img scr="kartinka3" /></div><br /><div class="1"><img scr="kartinka4" /></div><br /><div class="1"><img scr="kartinka5" /></div><br /><div class="1"><img scr="kartinka6" /></div>

Я делаю таким образом
PHP:
скопировать код в буфер обмена
  1. $post = str_replace('<img','<div class=\"1\"><img', $post);
  2. $post = str_replace('" />','" /></div>', $post);

иногда все срабатывает норм а иногда вот так получается
CODE (html):
скопировать код в буфер обмена
  1. <div class="1"><img scr="kartinka1" /><br /><div class="1"><img scr="kartinka2" /><br /><div class="1"><img scr="kartinka3" /><br /><div class="1"><img scr="kartinka4" /><br /><div class="1"><img scr="kartinka5" /><br /><div class="1"><img scr="kartinka6" /></div></div></div></div></div></div>

Может можно как то по другому обрамить DIV-ом подскажите плиззз.
 
 Top
EuGen Администратор
Отправлено: 10 Мая, 2012 - 15:18:41
Post Id


Профессионал


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


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




PHP:
скопировать код в буфер обмена
  1. $sText='<img src="kartinka1" /><br /><img src="kartinka2" /><br /><img src="kartinka3" /><br /><img src="kartinka4" /><br /><img src="kartinka5" /><br /><img src="kartinka6" />';
  2. $sText=preg_replace('/\<img\s+src\s*\=\s*[\'\"]kartinka(\d+)[\'\"](.*)\>/Usmi', '<div class="1"><img src="kartinka$1"$2></div>', $sText);
  3. //var_dump($sText);

Только обращаю Ваше внимание - в Вашем примере текста некорректно указан атрибут (scr вместо src) - в коде выше это исправлено.
Если текст в utf, то добавьте модификатор u (то есть будет Uusmi вместо Usmi)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
riv
Отправлено: 10 Мая, 2012 - 15:29:31
Post Id



Гость


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


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




такс .....
А в общем у меня там идет вот так полностью
PHP:
скопировать код в буфер обмена
  1. $post = preg_replace('#title=\\\"(.*)(?!=\\\")\\\"#iU', "", $post);
  2. $post = preg_replace('#alt=\\\"(.*)(?!=\\\")\\\"#iU', "alt=\"$title\" title=\"$title\"", $post);
  3. $post = preg_replace("#(http://[^\"]+/)([^\"/]+\.)(jpe?g|gif|png|bmp)#iU", "мой путь/$2$3", $post);
  4. $post = str_replace('<img','<div class=\"1\"><img', $post);
  5. $post = str_replace('" />','" /></div>', $post);
  6.  

как это туда прикрутить....
PHP:
скопировать код в буфер обмена
  1. $sText= preg_replace('#title=\\\"(.*)(?!=\\\")\\\"#iU', "", $sText);
  2. $sText= preg_replace('#alt=\\\"(.*)(?!=\\\")\\\"#iU', "alt=\"$title\" title=\"$title\"", $sText);
  3. $sText=preg_replace('/\<img\s+src\s*\=\s*[\'\"](http://[^\"]+/)([^\"/]+\.)(jpe?g|gif|png|bmp)(\d+)[\'\"](.*)\>/Uusmi', '<div class=1><img src="мой путь/$2$3$4"$5></div>', $sText);

Так я понимаю делать?
 
 Top
EuGen Администратор
Отправлено: 10 Мая, 2012 - 15:40:16
Post Id


Профессионал


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


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




Примерно. Только непонятно, почему за одну замену все не сделать (т.к. первоначальная задача не была озвучена)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
riv
Отправлено: 10 Мая, 2012 - 15:44:59
Post Id



Гость


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


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




EuGen пишет:
первоначальная задача не была озвучена

Ссори у меня просто с регулярками очень очень тяжело поэтому как бы и делаю кусками...
 
 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