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 :: спарсить весь alt=""

 PHP.SU

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


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

> Без описания
xhugo
Отправлено: 28 Апреля, 2011 - 21:34:13
Post Id



Посетитель


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


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




нужно вытащить все и всех содержимое параметра alt=""
у всех элементов страницы..

пробую так:
PHP:
скопировать код в буфер обмена
  1. preg_match('|alt="(.*)"|im',file_get_contents(""),$p;
  2. foreach($p[0] as $z)
  3. {
  4. echo $z.'<hr>';
  5. }


но парсится только несколько элемнов, т.е. не все
 
 Top
Саныч
Отправлено: 28 Апреля, 2011 - 21:39:23
Post Id



Участник


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


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




может preg_match_all?


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
DlTA
Отправлено: 28 Апреля, 2011 - 22:04:44
Post Id



Постоянный участник


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


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




и со скобками туго
xhugo пишет:
preg_match('|alt="(.*)"|im',file_get_contents(""),$p;
закрывающей нет.
кавычки бывают еще и одинарные,
между alt и = иногда пробелы бывают, после = тоже иногда ставят
вроде все.
 
 Top
xhugo
Отправлено: 28 Апреля, 2011 - 22:06:57
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1. <?
  2. $zz="http://blackquote.ru/last.php";
  3. preg_match_all('|alt="(.*)"|im',file_get_contents($zz),$proxy);  
  4.   foreach($proxy[0] as $s)  
  5.   {
  6. echo $s.'<hr>';
  7. }
  8. ?>


пробовал.
тоже не все
 
 Top
Саныч
Отправлено: 28 Апреля, 2011 - 23:06:18
Post Id



Участник


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


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




xhugo, может и в правду пробелы есть?
попробуй еще это


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
DlTA
Отправлено: 29 Апреля, 2011 - 00:09:34
Post Id



Постоянный участник


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


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




Саныч пишет:
|alt\s?=\s?"(.*)"|im

уж лучше тогда |alt\s*=\s*["'](.*)["']|im
 
 Top
evgenijj
Отправлено: 29 Апреля, 2011 - 00:09:54
Post Id



Участник


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


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $text = '<a href="first.php" alt="first">aaa</a><img src="second.php" alt="second" />';
  3. $pattern = '~alt\s*=\s*("|\')[^\'"]?(1)~im';
  4. $text = preg_match_all( $pattern, 'third', $text );
  5. ?>

Я здесь не предусмотрел, если чел напишет <a href=http://server.com>server.com</a> Браузеры это понимают.

(Отредактировано автором: 29 Апреля, 2011 - 00:10:27)

 
 Top
xhugo
Отправлено: 29 Апреля, 2011 - 15:43:33
Post Id



Посетитель


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


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




Саныч, парсит так же как и у меня.

evgenijj , что то не сработал ваш код
 
 Top
xhugo
Отправлено: 30 Апреля, 2011 - 16:36:30
Post Id



Посетитель


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


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




даже например не спарсило
CODE (htmlphp):
скопировать код в буфер обмена
  1. <img src="created/1304170582.jpg" alt="Бесит, что когда у тебя очень мало времени, ну минут буквально 15, и
  2. ты заходишь вконтакт, все это как чувствуют и начинают писать. все!
  3. а когда у тебя времени дохера - сиди не хочу - хоть один бы написал. ага,
  4. щас. что за закон подлости" border=0 width="100%"/>
 
 Top
DlTA
Отправлено: 30 Апреля, 2011 - 17:01:57
Post Id



Постоянный участник


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


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




/alt\s*=\s*("|\')[^\'"]?(1)/ims
а так?
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $text = '<img src="created/1304170582.jpg" alt="Бесит, что когда у тебя очень мало времени, ну минут буквально 15, и
  2. ты заходишь вконтакт, все это как чувствуют и начинают писать. все!
  3. а когда у тебя времени дохера - сиди не хочу - хоть один бы написал. ага,
  4. щас. что за закон подлости" border=0 width="100%"/>';
  5.  
  6. $mch = "/alt\s*=\s*(['\"])(.+)(['\"])\s/s";
  7. preg_match($mch,$text,$matsh);
  8. print_r($matsh);


костыляво но работает

CODE (htmlphp):
скопировать код в буфер обмена
  1. Array ( [0] => alt="Бесит, что когда у тебя очень мало времени, ну минут буквально 15, и ты заходишь вконтакт, все это как чувствуют и начинают писать. все! а когда у тебя времени дохера - сиди не хочу - хоть один бы написал. ага, щас. что за закон подлости" [1] => " [2] => Бесит, что когда у тебя очень мало времени, ну минут буквально 15, и ты заходишь вконтакт, все это как чувствуют и начинают писать. все! а когда у тебя времени дохера - сиди не хочу - хоть один бы написал. ага, щас. что за закон подлости [3] => " )
 
 Top
xhugo
Отправлено: 30 Апреля, 2011 - 18:26:51
Post Id



Посетитель


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


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




но парсит именно эту часть .
т.е. если $text =file_get_contents("http://blackquote.ru");
совсем в [1]= будет вся страница исходная
 
 Top
DlTA
Отправлено: 30 Апреля, 2011 - 21:55:47
Post Id



Постоянный участник


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


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




не универсально но работает
PHP:
скопировать код в буфер обмена
  1. $mch = "/alt\s*=\s*\"([^\"]*)\" /";
  2. preg_match_all($mch,$text,$matsh);
  3. print_r($matsh);
 
 Top
Altynayka
Отправлено: 05 Апреля, 2012 - 16:26:21
Post Id


Частый гость


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


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




DlTA не могла написать регулярное выражение для alt=""
Только начала изучение регулярных выражений, уже день просидела. Спасибо! Почитала кучу, но так и не доходит. Порекомендуйте литературу для чайников, пожалуйста.
 
 Top
EuGen Администратор
Отправлено: 05 Апреля, 2012 - 16:50:14
Post Id


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


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


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




Довольно полный мануал есть у нас:
Приложение 3


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Altynayka
Отправлено: 05 Апреля, 2012 - 17:52:30
Post Id


Частый гость


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


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




EuGen спасибо за ссылку. какое регулярное выражение надо написать, что в теге <img /> проверить, присутствует ли альт, если нет, то дописать его и больше ничего не трогать, т.е. не затереть. Посмотрите пожалуйста, мой код работает некорректно.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $alt = 'alt="'.$atitle.'"';
  3. '#\<img(?::\w+)?\>([\w:;&,~%+!=@\/\.\-\#\?]+)\</img(?::\w+)?\>#si' => '<img '.$alt.' src="\\1"  />'
  4.  
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB