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]   

> Без описания
Acuna
Отправлено: 13 Июля, 2010 - 20:14:18
Post Id



Гость


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


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




Здравствуйте!

Вот у меня есть такой код картики:

CODE (htmlphp):
скопировать код в буфер обмена
  1. $string = '<img src="http://сайт/картика_1.jpg">';

Мне надо выдрать из нее путь к ней. Это не сложно:

PHP:
скопировать код в буфер обмена
  1. preg_match ('|<img(.*) src="([^"]*)"[^>]*>|is', $string, $image);

И в переменной $image[2] получим путь к ней.

Но вот что делать, если этих картинок в тексте много, например

CODE (htmlphp):
скопировать код в буфер обмена
  1. $string = '
  2.  
  3. <img src="http://сайт/картика_1.jpg">
  4.  
  5. текст 1
  6.  
  7. <img src="http://сайт/картика_2.jpg">
  8.  
  9. текст 2
  10. текст 3
  11.  
  12. <img src="http://сайт/картика_3.jpg">
  13.  
  14. ';


Может нужно прогнать текст в цикле через foreach, но что прогонять?

(Отредактировано автором: 13 Июля, 2010 - 20:16:05)



-----
The Lisalover
!!! I LOVE PHP !!!
 
 Top
ALEN
Отправлено: 13 Июля, 2010 - 20:24:55
Post Id



Участник


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


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




Acuna
Ну сразу Вас огорчу:
а что если кавычек нет или они одинарные?
 
 Top
qbik
Отправлено: 13 Июля, 2010 - 20:28:35
Post Id


Гость


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


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




preg_match_all(то-же)
$image[2][0] - первая
$image[2][1] вторая и т.п.
(Добавление)
т.е. foreach($image[2] as $img)
 
 Top
JustUserR
Отправлено: 14 Июля, 2010 - 01:37:09
Post Id



Активный участник


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


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




Acuna пишет:
Мне надо выдрать из нее путь к ней. Это не сложно:
В той части шаблона которая отвечает за определение URL-пути и вообще при применении регулярных выражений к HTML-аттрибутам - можно следовать правилу чтобы открывающая и закрывающая кавычка была одинаковой что можно достичь за счет применения обратной ссылки Так как в HTML-документе позволяется указание URL-путей в гиперссылках без предварительного urlencode-кодирования - то обрамление соответствующего href-аттрибута в кавычки является обязательным с html-экранированием при необходимости
Для массового поиска или замены по шаблону в общем случае применяется модификатор /g - но в PHP в случае поиска используется отдельная функция preg_match_all
Также при работе с текстом который содержит анализируемые гиперссылки важно определеить его кодировку - поскольку строковые функции и регулярные выражения работают в соответствии с кодировкой представления данных текущего PHP-скрипта - и в случае их несовпадения нужно или выполнить явное перекодирование или использовать mb-функции с возможностью указания используемой для конкретного вызова кодировки


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Acuna
Отправлено: 15 Июля, 2010 - 22:22:18
Post Id



Гость


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


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




qbik
О! То, что доктор прописал! Спасибо большое! Подмигивание


-----
The Lisalover
!!! I LOVE PHP !!!
 
 Top
JustUserR
Отправлено: 16 Июля, 2010 - 00:35:54
Post Id



Активный участник


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


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




Acuna пишет:
О! То, что доктор прописал
Полученное регулярное выражение является недостаточно универсальным поскольку во-первых не учитывает возможность использования различных видов кавычек - а во-вторых в целях совместимости с любыми кодировками HTML-документов получаемых с удаленного сервера для обработки следует добавить соответствующую проверку


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB