php获取a链接的href属性的几种方法
时间:2017-10-29
在php中,我们经常要获取一个html文档里面a链接的href属性,这里有几种方法可以实现,本文章向大家介绍php获取a链接的href属性的几种方法,需要的朋友可以参考一下。
php获取a链接的href属性的三种方法。
方法一:正则表达式法
实例代码如下:
$str = '<a title="码农教程" href="http://www.manongjc.com">码农教程</a>';
preg_match('/^<a.*?href=(["\'])(.*?)\1.*$/', $str, $m);
var_dump($m);
运行结果:
array(3) {
[0]=>
string(37) "<a title="码农教程" href="http://www.manongjc.com">码农教程</a>"
[1]=>
string(1) """
[2]=>
string(4) "http://www.manongjc.com"
}
方法二:使用php DOMDocument方法
代码如下:
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('a') as $node) {
echo $dom->saveHtml($node), PHP_EOL;
}
以上代码将输出所有$html变量里面的a标签。
获取a标签文本,可以使用下面代码:
echo $node->nodeValue;
检查a标签是否存在href属性,可以使用下面代码:
echo $node->hasAttribute( 'href' );
使用下面代码获取a标签的href属性值:
echo $node->getAttribute( 'href' );
使用下面代码修改a标签的href属性值:
$node->setAttribute('href', 'something else');
删除a标签的href属性值:
$node->removeAttribute('href');
方法二:使用 XPath
实现代码如下:
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//a/@href');
foreach($nodes as $href) {
echo $href->nodeValue; // echo current attribute value
$href->nodeValue = 'new value'; // set new attribute value
$href->parentNode->removeAttribute('href'); // remove attribute
}
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 聊聊dubbo-go的HystrixFilter
- 如何将Java工程导出成可以执行的jar
- 利用JSP内置的Application对象实现的网站引用计数
- JSP导入XML不成功的一个原因
- 生产环境日志清理脚本
- fastadmin插件开发之插件目录
- EasySwoole之定时任务面板
- Gradle构建springBoot项目
- python菜鸟教程 | if elif else 判断
- 图解面试题:人均付费如何分析?
- 面试官拿System.out.println()考了我半个小时?我傻了
- 为何总给外卖打差评?我们来数据分析一下!
- 解决Linux html生成图片中文乱码
- 前端必知必会-BFC案例剖析
- 分析Guava并发工具类Futures