Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> найти имена картинок тега <img>, регулярные выражения 
:(
    Опции темы
Lely
Дата 4.6.2009, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 5.9.2007

Репутация: нет
Всего: нет



Всем доброго времени суток....помогите, пожалуйста, разобраться и найти ошибку в регулярном выражении
Цель - найти имена всех картинок тегов img в файле...пример тега <img width=193 height=46
src="./image004.jpg" v:shapes="_x0000_i1026">

мое регулярное выражение (не мое правда, а чье-то....я только его поправила чтобы хоть как-то работало smile ) выводит имя только последней картинки  smile ...вот кусок кода
Код

$text=file_get_contents($uploaddir . $_FILES['userfile']['name']);
preg_match_all('/\<img.*src=["\']?([^"\'\s]+)["\']?.*\>/is', $text, $img);
print_r($img[1]);


просто найти все картинки регулярным выражением я могу, но нужно именно тега img smile 

заранее всем спасибо за помощь
PM   Вверх
euginewm
Дата 4.6.2009, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Drupal Development



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 25.9.2006
Где: Zaporozhye

Репутация: нет
Всего: нет



У Вас абсолютно рабочее регулярное выражение, если убрать модификатор 's'. Описание модификатора смотреть в мануале

Регулярное выражение, соответствующее поставленной задаче:
Код

$regx = '/\<img.*src=["\']?([^"\'\s]+)["\']?.*\>/i';

PM MAIL Skype   Вверх
unicross
Дата 4.6.2009, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Код

<?php
$text = '
<img width=193 height=46
src="./image1.jpg" v:shapes="_x0000_i1026">
<img src="./image2.jpg">
<img src=\'./image3.jpg\'>
<img src=image4.jpg >
';
preg_match_all('/<img[^>]*?src=["\']?([^"\'\s>]+)["\']?[^>]*?>/is', $text, $img);
echo '<pre>';
print_r($img[1]);
echo '</pre>';
?>

PM MAIL WWW   Вверх
Lely
Дата 4.6.2009, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 5.9.2007

Репутация: нет
Всего: нет



euginewm, у меня не работает это выражение вообще :(...не выдает ни одного результата...просто пустой массив...:(


unicross, спасибо за выражение...оно работает правильно  smile только можно еще чтобы оно не весь путь выдавало, а только имя картинки ?...вместо "./image004.jpg" чтобы было просто "image004.jpg"

и еще если можно у меня вопрос...я только начинаю с пхп...и вот мне надо сделать чтобы документы, бывшие *.док, и сохраненные как *.хтм загружались на сервер и потом нормально отображались...т.е. я ищу там все картинки, переписываю их путь из папки, которую ворд создает просто в корень, а потом генерю страницу где пользователю указываю каких картинок мне не хватает...
вопрос такой...в коде страниц ворд еще пишет  
Код

<v:imagedata src="./p2_2.files/image001.png" o:title="Новый рисунок (8)"
  croptop="3409f" cropbottom="13920f" cropleft="963f" cropright="321f"/>

надо ли эти картинки загружать...или они не обязательны и страницы и так будут нормальными? smile 

еще раз всем спасибо)))

Добавлено через 10 минут и 47 секунд
или еще есть вот такие штуки...
Код

<v:imagedata src="./Фотометрия.files/image001.wmz" o:title=""/>

они же тоже не нужны, да?
PM   Вверх
unicross
Дата 4.6.2009, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Цитата(Lely @  4.6.2009,  20:40 Найти цитируемый пост)
вместо "./image004.jpg" чтобы было просто "image004.jpg"

Код

preg_match_all('/<img[^>]*?src=["\']?[^"\'\s>]*?([a-z0-9_-]+\.[a-z]+)["\']?[^>]*?>/is', $text, $img);

PM MAIL WWW   Вверх
Lely
Дата 4.6.2009, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 5.9.2007

Репутация: нет
Всего: нет



unicross, спасибо Вам большущее)))))))....все работает smile 
PM   Вверх
Lely
Дата 9.6.2009, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 5.9.2007

Репутация: нет
Всего: нет



Здравствуете все smile А можно еще вопрос?...передо мной встала необходимость написать регулярное выражение, отсеивающее загружаемые файлы...мне нужны только *.htm...вот я пишу
Код

                $use_file = $_FILES['userfile']['name'];
                if(!preg_match("/[a-zA-Z0-9_-]{1,50}\.(htm)/", $use_file)) 
                {
                   echo "Имя пользователя задано в неправильном формате";
                }
                else echo "Нормальный файл";

но файл например ",.htm" тоже нормальный, а выражение его естественно не пускает  smile а все мои попытки написать что-то типа

if(!preg_match("/[a-zA-Z0-9_-\,\.\!\@\#\$\%\^\&\(\)]{1,50}\.(htm)/", $use_file)) 

успехом не увенчались smile 

подскажите, пожалуйста, как это правильно вписать...
Заранее очень благодарна smile 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1105 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.