首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

请问一个正则有关问题这么写问什么匹配不对

2013-08-11 
请教一个正则问题这么写问什么匹配不对?php$str file_get_contents(http://mil.news.sina.com.cn)//

请教一个正则问题这么写问什么匹配不对


<?php
    $str = file_get_contents("http://mil.news.sina.com.cn");
// 军情热点
    $reg = '#【军情热点】.*<a.*href="(.*).*>(.*)</a>"#iUs';
preg_match_all($reg,$str,$m);
echo "<pre>";
print_r($m);
?>


请教一下  匹配一下链接和标题 这么写为什么不对
[解决办法]
$str = file_get_contents("http://mil.news.sina.com.cn");
// 军情热点
$reg = '#【军情热点】.+?href=(\S+)#is';
preg_match_all($reg,$str,$m);
print_r($m);
Array
(
    [0] => Array
        (
            [0] => 【军情热点】</font></a><a href=http://blog.sina.com.cn/s/blog_69710d610101fglf.html?tj=1
        )

    [1] => Array
        (
            [0] => http://blog.sina.com.cn/s/blog_69710d610101fglf.html?tj=1
        )

)

[解决办法]
引用:

<?php
$str = file_get_contents("http://mil.news.sina.com.cn"); 
$reg = '#(?<=【军情热点】).*<a.+href="(.+)".+>(.+)</a>(?=名家专栏)#isU'; 
preg_match_all($reg,$str,$m); 
echo "<pre>";
print_r($m); 

?>



我试着这样写了一下 也不对呢  请大家帮忙看一下

它的连接不包括引号
$reg = '#(?<=【军情热点】).*<a.+href=(.+)\s*target=\_blank>(.+)</a>(?=名家专栏)#isU'; 
[解决办法]

$s_html = file_get_contents("http://mil.news.sina.com.cn");
$s_html = iconv('gbk', 'utf-8', $s_html);

$s_gd_reg = '#【军情热点】(.*)</ul>#iUs';
$a_gd_match = array();
preg_match_all($s_gd_reg, $s_html, $a_gd_match);



$s_news = $a_gd_match[1][0];
$s_news_reg = '#<a\s+href=(.*)\s+.*>(?:<font color=red>)?([^<>]*)(?:</font>)?</a>#iUs';
$a_news_match = array();
preg_match_all($s_news_reg, $s_news, $a_news_match);
print_r($a_news_match);



用了一种比较笨的方法。。

热点排行