1. php用正則獲取html標簽內容
推薦使用querylist
<?php
header("Content-type:text/html;charset=utf-8");
require'QueryList/QueryList.class.php';
$url="要抓取的網站";
$reg=array(
"title"=>array("a","text"),
"src"=>array("a","href"),
);
//$rang="[id^=post-]";
$hj=QueryList::Query($url,$reg);
print_r($hj->jsonArr);
2. PHP正則表達式匹配html標簽屬性值
<?php
$str='<aid="btlist10"st="1"ditem="true"class="itemmulti-lineswith-avatar"ftios="1"ck="TlRZNFlUSTRNakk9"
ft="1"data="我想匹配的屬性值"ix="10"analytical="false"s1="我想匹配的屬性值2"
jxd1="0781C99068C8FEBF"jxd2=""onclick="openmenu($(this))">';
$fun=function($str,$key){
$str=preg_replace("/[sS]*s".$key."[="']+([^"']*)["'][sS]*/","$1",$str);
return$str;
};
$data=$fun($str,"data");
echo$data;
echo" ";
$s1=$fun($str,"s1");
echo$s1;
echo" ";
$other=$fun($str,"ck");
echo$other;
echo" ";
$other=$fun($str,"onclick");
echo$other;
?>
3. php獲取html標簽內容
$pattern='#<ahref="([^"]*?)"title="([^"]*?)"#i';
$str='上面的標簽內容';
if(preg_match($pattern,$str,$match)){
var_mp($match[1],$match[2]);
}else{
//匹配失敗
}
4. php如何用正則匹配如下html標簽
就是<div class="sk">.*?</div>吧,注意引號的使用即可。星號後面的問號可以防止貪婪。
5. php 正則匹配HTML標簽以外的匹配詞 並且不匹配A標簽中的匹配詞
那就第一步 去掉a preg_replace('/<a[^>]*>.*?</a>/','',$html);
第二部 去掉所有標簽 strip_tags( $html)
6. php正則表達式截取HTML標簽中的內容
header('content-type:text/html;charset=utf-8');
$str='<li><ahref="/news1397/"title="1827年3月5日義大利物理學家伏打逝世">1827年3月5日義大利物理學家伏打逝世</a></li>
<li><ahref="/news1398/"title="1871年3月5日波蘭女革命家盧森堡誕辰">1871年3月5日波蘭女革命家盧森堡誕辰</a></li>
<li><ahref="/news1399/"title="1886年3月5日董必武誕辰">1886年3月5日董必武誕辰</a>(圖)</li>';
preg_match_all('/<a.*>(.*)</a>/im',$str,$matches);
var_mp($matches[1]);
7. PHP正則表達式如何匹配HTML標簽
這個問題類似求括弧配對. 用正則方法可能不行. 可以這樣:
1) 字元串分析法求解: 建立一個計數器, 同時從前向後掃描 html 內容, 從要選擇的段落開頭開始, 每次讀到一個 <td ..> 標簽, 計數器加一, 每次讀到一個 </td> 標簽, 計數器減一, 如果 沒有意外, 當計數器減為零時, 就找到了配對的 td 結束標簽.
2) 用 XmlDocument 讀取整段 html, 然後利用 DOM 的一系列方法選擇出你要的內容.
8. PHP 正則表達,如何取出HTML標簽內的內容,不要標簽名
假設你的內容為 $content = "你的內容";
思路如下:
用正則先匹配出<div>node</div>的內容,()直接以單元的形式就能匹配出不包含<div></div>的內容
$p = "%<div>(.*?)</div>%si";
//如果div之間是純文本 那麼語句改為:$p = "%<div>([^<]*?)</div>%si";比較合適
preg_match_all($p, $content, $arr);
print_r($arr[1]);
9. php 正則匹配HTML標簽中間內容
<?php
$aa="<div class=\"avatar\">
<a rel=\"nofollow\" href=\"/user/1251844324/\" target=\"_blank\" style=\"display: block; height: 50px; overflow: hidden;\">
<img src=\"http://p0.pstatp.com/thumb/207/1113504235\" />
</a>
</div>
<ul class=\"comment-content\">
<li>
<span class=\"name\">
<a rel=\"nofollow\" href=\"/user/1251844324/\" target=\"_blank\">我去年買了個表 </a>
:
</span>
<span class=\"content\">很虛。。。</span>
</li>
</ul>";
//echo $aa;
if(preg_match("/href=\"\/(.*)\" target/",$aa,$matched)){
echo "<br>one¨".$matched[1];
}
if(preg_match("/<img src=\"(.*)\" \/>/",$aa,$matched)){
echo "<br>two¨".$matched[1];
}
if(preg_match("/_blank\">(.*)<\/a>/",$aa,$matched)){
echo "<br>three¨".$matched[1];
}
if(preg_match("/content\">(.*)<\/span>/",$aa,$matched)){
echo "<br>four¨".$matched[1];
}
?>
運行的結果是:
one¨user/1251844324/
two¨http://p0.pstatp.com/thumb/207/1113504235
three¨我去年買了個表
four¨很虛。。。
是不是你想要的,或者你存取數據的方法是什麼樣的,可以看情況選擇循環語句。
有什麼問題可以追問。
10. PHP如何匹配html標簽中多個換行的內容
$str='<p class="p1">
<a href="這里是鏈接"
title="清醒了">第2回</a>
</p>';
preg_match_all('%<p class="p1"[^"]*href="([^"]*)"[^"]*title="([^"]*)"%',$str,$arr);
echo $arr[1][0];
echo $arr[2][0];