php正则表达式如何匹配title?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php正则表达式如何匹配title?相关的知识,希望对你有一定的参考价值。

比如要将网页中的"<title>百度知道——提问问题</title>"提取出来,如何写正则表达式?
1、preg_match_all('/<title>(.*)<\/title>/',$file,$content);
2、preg_match_all('/<title>[^\a]*</title>/',$file,$content);
3、preg_match_all('/<title>[\s\S]+<\/title>/',$file,$content); 这三种都匹配不出来

php正则表达式匹配title的代码如下:

$file = "<title>百度知道——提问问题</title>";

preg_match_all('/<title>(.*)<\\/title>/i',$file,$content); 

echo '<pre>';

print_r($content);

结果:

参考技术A <?php
$s = '<a title="abc.jpg" href="fefefe">
<img src="xsdsd.jpg" alt=\'xxsd.jpg\' title="eeerrfff" />
</a>
<img src="xsdsd.jpg" alt="eeerrfff.pngxxsd" title="xxsd.jpg" />';
$pat = '/(<img.*?)((alt|title)=[\'"]+[^\'|"]*\.(jpg|gif|png|bmp)[\'"]+)/';
echo preg_replace($pat , '$1' , $s);<p>
</p> <p>
</p> <p></p>
参考技术B

$file = "<title>百度知道——提问问题</title>";

preg_match_all('/<title>(.*)<\\/title>/i',$file,$content); 

echo '<pre>';

print_r($content);

结果:

追问

谢谢你的用心,但是我刚刚发现问题了,问题不在正则表达式写错了,而是我是utf8写的php网站,要抓取gbk编码的网站的title,这个怎么破?

追答

转码
$file = iconv('gbk','utf-8',$file);

本回答被提问者和网友采纳

PHP中正则表达式匹配字母

如题
网页代码为:<title>阿大使大赛的ABCDEFGH</title>

PHP代码:
<?php
$url='网页代码地址';
$info=file_get_contents($url);
preg_match('|<title>(.*?)<\/title>|i',$info,$m);
echo $m[1];
?>
要求只匹配这个标题后面的8个字母
有思路但不记得怎么写了
思路:前面汉字一个匹配文本 后面字母一个匹配文本
求实现啊 在线等
这个PHP代码是自己写的 能把标题全部匹配出来 但是我 只想取后面的8个字母!
因为标题的汉字字数不确定。但是后面8个大写字母可以确定

function test($str)
if (<a href="https://www.baidu.com/s?wd=preg_match&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d-m16sPhu9rH01P1n3PWN-0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHb4nHTvP1c4rHD1n1RsPHmd" target="_blank" class="baidu-highlight">preg_match</a>("/^[\x81-\xfe][\x40-\xfe]?/",$str))
return "首字母有中文";

return "首字母没中文";

echo test("中1231213");//首字母有中文
echo test("123中");//首字母没中文
参考技术A preg_match("/<title>.+?([A-Z]+)<\\/title>/i",$info,$m);
print_r($m);

追问

没开电脑你测试过了吗

追答

本回答被提问者采纳

以上是关于php正则表达式如何匹配title?的主要内容,如果未能解决你的问题,请参考以下文章

PHP正则匹配 Emoji的表达式怎么写?

php 正则表达式 匹配1到32 如何匹配? 这样可不可以[1-32]

php如何使用正则表达式匹配url图片啊

php正则表达式匹配img中任意属性的方法

PHP中如何匹配多个满足正则表达式的字符串

php如何使用正则表达式匹配url图片啊