Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужно выдернуть все ссылки с html файла у тэга a href
 
 автор: AlexDIXI   (26.06.2008 в 03:31)   письмо автору
 
 

Привет.

Есть html файл, в нем есть :


1) <a href="http://url.com/"><span>text</span></a>

 внем же html файле  есть

 2) <a href="http://url.com/"><img src=bla></a>


Нужны ссылки т.е. (УРЛ) с первого варианта. А воторой пропускать..

Спасибо! С меня на пиво..

   
 
 автор: AcidTrash   (26.06.2008 в 09:33)   письмо автору
 
   для: AlexDIXI   (26.06.2008 в 03:31)
 

<pre>
<?php
$text
="text1 <a href=\"index.php\"><img src=\"1.gif\"></a> text2 <a href=\"index1.php\">link2</a>";
preg_match_all("#<a[^>]+>(?!<img).+?</a>#is",$text,$out);
print_r ($out);
?>

   
 
 автор: AlexDIXI   (26.06.2008 в 09:45)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 09:33)
 

Привет..

Можно вернуть в нормальный массив а не многомерный.. А то не могу дальше работать :)

Спасибочки!!!

   
 
 автор: AcidTrash   (26.06.2008 в 09:49)   письмо автору
 
   для: AlexDIXI   (26.06.2008 в 09:45)
 

print_r ($out[0]);

   
 
 автор: AlexDIXI   (26.06.2008 в 09:53)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 09:49)
 

2AcidTrash

спасибо $out[0] помог.

Но результат такой же как в прошлый раз, с ссылками которые ссылаются на картинку. А их не должно быть..

   
 
 автор: AcidTrash   (26.06.2008 в 09:56)   письмо автору
 
   для: AlexDIXI   (26.06.2008 в 09:53)
 

Вообще то должно работать.
Приведите кусок html с которого вы дергаете ссылки

   
 
 автор: AlexDIXI   (26.06.2008 в 10:00)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 09:56)
 

Пожалуйста..



<tr>
<td colspan="2" valign="top" style="padding-bottom: 3px;"><a href="URL to site"><span class="aaa">Title</span></a></td>
</tr>
<tr>
<td colspan="2">
<a href="URL to site"><img width="160" height="120" src="URL to img" alt="" id="" onmouseover="startPreview('29737')" onmouseout="stopPreview('29737')" /></a>
</td>
</tr>

   
 
 автор: AcidTrash   (26.06.2008 в 10:04)   письмо автору
 
   для: AlexDIXI   (26.06.2008 в 10:00)
 

Результат
Array
(
    [0] => <a href="URL to site"><span class="aaa">Title</span></a>
)


Ну и что не работает то?

   
 
 автор: AlexDIXI   (26.06.2008 в 10:17)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 10:04)
 

Потому что я перенос строки убрал, а в настоящем, есть перенос.


<a href="URL">
                            <img width="160" height="120" src=" URL" alt="" id="" onmouseover="startPreview('27499')" onmouseout="stopPreview('27499')" />



Можно поправить?

   
 
 автор: AcidTrash   (26.06.2008 в 10:34)   письмо автору
 
   для: AlexDIXI   (26.06.2008 в 10:17)
 

Модификатор s в регулярном выражении уберите.

   
 
 автор: AlexDIXI   (26.06.2008 в 10:45)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 10:34)
 

Спасибо огромное!!!


Вы не подскажете где найти пояснения символам регулярного выражения?

Я правильно понял логику данного скрипта. Вырезать все ахрефы где нет в якоре, <img ?

   
 
 автор: AcidTrash   (26.06.2008 в 10:51)   письмо автору
 
   для: AlexDIXI   (26.06.2008 в 10:45)
 

Соответствует всем <a href="URL to site"> после которых нет <img

   
 
 автор: AlexDIXI   (26.06.2008 в 10:53)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 10:51)
 

не могу вывести все ссылки на экран без Array (0) т.п.

   
 
 автор: AcidTrash   (26.06.2008 в 11:00)   письмо автору
 
   для: AlexDIXI   (26.06.2008 в 10:53)
 

preg_match_all("#<a[^>]+>(?!<img).+?</a>#i",$text,$out);
for($i=0;$i<count($out[0]);$i++){
print $out[0][$i];
print "<br>";
}

   
 
 автор: AlexDIXI   (26.06.2008 в 11:04)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 11:00)
 

Пасиб.. Вышлите мне на e-mail info[dog]alexwm.com WMZ вышлю на пивко с рыбкой..

   
 
 автор: AcidTrash   (26.06.2008 в 11:11)   письмо автору
 
   для: AlexDIXI   (26.06.2008 в 11:04)
 

Не пользуюсь кошельками :)

P.S.
>Вы не подскажете где найти пояснения символам регулярного выражения?
Полезные ссылки
http://softtime.ru/bookphp/gl7_1.php
http://softtime.ru/dic/id_dic=134&id_group=3
http://softtime.ru/dic/id_group=3&id_dic=133

   
 
 автор: AlexDIXI   (26.06.2008 в 11:15)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 11:11)
 

Очень жаль.. Премного благодарен тебе. если чем смогу, всегда рад помочь..

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования