php怎么写获取两个标签内的内容的正则表达式啊

php怎么写获取两个标签内的内容的正则表达式啊,第1张

<php

/PHP正则提取img标记中的任意属性/

$str = '<center><img src="/uploads/images/20100516000jpg" height="120" width="120"><br />PHP正则提取或更改img标记中的任意属性</center>';

//1、取整个代码

preg_match('/<\simg\s+[^>]src\s=\s(\'|\")()\\1[^>]\/\s>/i',$str,$match);

echo $match[0];

//2、取width

preg_match('/<img+(width=\"\d\")+>/i',$str,$match);

echo $match[1];

//3、取height

preg_match('/<img+(height=\"\d\")+>/i',$str,$match);

echo $match[1];

//4、取src

preg_match('/<img+src=\"(+\(jpg|gif|bmp|bnp|png))\"+>/i',$str,$match);

echo $match[1];

/PHP正则替换img标记中的任意属性/

//1、将src="/uploads/images/20100516000jpg"替换为src="/uploads/uc/images/20100516000jpg")

print preg_replace('/(<img+src=\"+)(images\/)(+\(jpg|gif|bmp|bnp|png)\"+>)/i',"\${1}uc/images/\${3}",$str);

echo "<hr/>";

//2、将src="/uploads/images/20100516000jpg"替换为src="/uploads/uc/images/20100516000jpg",并省去宽和高

print preg_replace('/(<img)+(src=\"+)images\/(+\(jpg|gif|bmp|bnp|png)\")+>/i',"\${1} \${2}uc/images/\${3}>",$str);

>

参考如下

get_meta_tags -- 从一个文件中提取所有的 meta 标签 content 属性,返回一个数组

描述

array get_meta_tags ( string filename [, int use_include_path])

打开 filename 逐行解析文件中的 <meta> 标签。此参数可以是本地文件也可以是一个 URL。解析工作将在 </head> 处停止。

将 use_include_path 设置为 1 将促使 PHP 尝试按照 include_path 标准包含路径中的每个指向去打开文件。这只用于本地文件,不适用于 URL。

下面实例分析了php中get_meta_tags()、CURL与user-agent用法。具体分析如下:

get_meta_tags()函数用于抓取网页中<meta name="A" content="1"><meta name="B" content="2">形式的标签,并装入一维数组,name为元素下标,content为元素值,上例中的标签可以获得数组:array('A'=>'1', 'b'=>'2'),其他<meta>标签不处理,并且此函数只处理到</head>标签时截止,之后的<meta>也不再继续处理,不过<head>之前的<meta>还是会处理

user-agent是浏览器在向服务器请求网页时,提交的不可见的头信息的一部分,头信息是一个数组,包含多个信息,比如本地缓存目录,cookies等,其中user-agent是浏览器类型申明,比如IE、Chrome、FF等

今天在抓取一个网页的<meta>标签的时候,总是得到空值,但是直接查看网页源代码又是正常的,于是怀疑是否服务器设置了根据头信息来判断输出,先尝试使用get_meta_tags()来抓取一个本地的文件,然后这个本地文件将获取的头信息写入文件,结果如下,其中替换成了/,方便查看,代码如下:

代码如下:

array (

'>

htmlspecialchars是将html转码,防止XSS攻击的。你这样没有意义。

CURL获取内容后直接 preg_match_all('/<p>()<\/p>/');就可以了

还有不懂的可以追问

<php

$str = '

<ul><li><a href="#">内容111</a></li><li><a href="#">内容111</a></li><li><a href="#">内容111</a></li><li><a href="#">内容111</a></li></ul>

<ol><li><a href="#">内容2</a></li><li><a href="#">内容2</a></li><li><a href="#">内容2</a></li><li><a href="#">内容12</a></li></ol>

';

$search = '/<ul>()<\/ul>/is';

preg_match_all($search,$str,$r,PREG_SET_ORDER );

print_r($r);

$search = '/<ol>()<\/ol>/is';

preg_match_all($search,$str,$r,PREG_SET_ORDER );

print_r($r);

>

是php 能直接输出 html 内容 你反过来理解 就可以了

如果文档名是 html 里面的 php变量 是不会被输出的, 反过来

如果文档名是 php 里面的html 标签会被原封不动的输出到浏览器。如果html 对象的属性值是引用一个php 变量,php 变量会被计算出结果后输出 当做html 对象的属性值, 效果好像 html 读取了php的变量。。。

不过一般不推荐 HTML 和php 混编 , php 需要输出 HTML 标签是用 echo html字串的方式

如 echo "<a href=''";

以上就是关于php怎么写获取两个标签内的内容的正则表达式啊全部的内容,包括:php怎么写获取两个标签内的内容的正则表达式啊、php怎么抓取网站中meta函数get、PHP正则获取整个页面<p>标签里面的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10127905.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存