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

Форум Регулярные Выражения

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

 

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

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

тема: Регулярное выражение для <a c контентом
 
 автор: Inba   (07.09.2006 в 17:28)   письмо автору
 
 

Есть следующий код, хочу написать универсальное регулярное выражение для изъятия ссылок и их контентов с WEB страницы. Занимаюсь регулярными выражениями не очень давно, но уже уразумел их необходимость и превосходство, по сравнению с простыми строковыми функциями. Помогите плз, может вместе напишем!!!

  $html = 'asdasdas<a id="sexOl" href="temp1.html"><img src="asdasd" asdasd name=uaa></a>  
  poi<a hert=asdasd href="temp2.html" target="_blank" ><font>temp2</font></a>
  <a id="sexOl" href= " temp3.html "  >temp3</a>';
  
  $my1 = "/(?:.*)href[\s]*=\s*(?:[\'\"])\s*(.*)\s*(?:[\"\'])\s*>(.*)<\/a\s*>/iX";
     
   $my =  split('<a',  $html);   
    for ($j=1;$j<sizeof($my);$j++){
        print htmlspecialchars($my[$j]).'<br>';
        preg_match_all($my1, $my[$j], $anchors);
        unset($anchorst[0]);
        print '<pre>';
        print_r($anchors);
        print '</pre><br><br>';
    }

Баг в том что если ссылка имеет после href="temp2.html" какие либо параметры, например target="_blank", то ссылка берётся не temp2.html, а temp2.html" target"=_blank, может, кто объяснит, уже неделю мучаюсь!!!

   
 
 автор: hintoz   (07.09.2006 в 20:51)   письмо автору
 
   для: Inba   (07.09.2006 в 17:28)
 

Я делаю так:
<?
$host 
"visavi.net"//хост откуда берём
$path "/index.php?".$_SERVER['QUERY_STRING'];
$fp fsockopen($host,80,$errno,$errstr,30);
if(!
$fp) echo"$errstr ($errno)<br />\n";
else{
$headers "GET $path HTTP/1.0\r\n";
$headers .= "Host: $host\r\n";
$headers .= "Accept: *\r\n";
$headers .="Accept-Charset: UTF-8\r\n";  // <<====
$headers .= "Accept-Charset: *\r\n";
$headers .= "Accept-Encoding: deflate\r\n";
$headers .= "Accept-Language: ru\r\n";
$headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01\r\n\r\n";
fwrite($fp,$headers);
while(
$text != "\r\n"$text fgets($fp,128);
$text "";
while(!
feof($fp)) $text .= fgets($fp,4096);
fclose($fp);
}
$hostt=$_SERVER['HTTP_HOST'];
$text=ereg_replace("Мир скриптов","hintoz StudiO",$text);
$text=ereg_replace("visavi.net",$hostt,$text);
$text=ereg_replace('<a href="http://visavi.net?">&#169; Visavi.net</a>','<a href="http://wap.hinto.info/">hintoz StudiO</a>',$text);
$text=ereg_replace('<a href="http://wap-motor.com">Powered by Wap-Motors</a>','<a href="http://wap.hinto.info/">Powered by hintoz StudiO</a>',$text);
##------------------------------ заголовок -----------------------------------##
header("Content-type:text/vnd.wap.wml;charset=utf-8");
print 
"$text";
?>

   
Rambler's Top100
вверх

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