php - 我如何找出某个标签是否包含一个 img 作为锚点
问题描述
我有一些 xpath 代码循环用于 a-tag 的 html 代码并检索 href、rel-tags 和锚文本。但我无法确定锚文本是 img 标签,如果是,我可以获得 alt 标签信息吗?
用于查找链接并检索有关它们的信息。
$dom = new \DOMDocument();
@$dom->loadHTML($html);
$xpath = new \DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
//$img = $href->evaluate("img");
$url = $href->getAttribute('href');
$rel = $href->getAttribute('rel');
$anchortext=$href->nodeValue;
}
以上工作正常,但我无法弄清楚如何确定锚文本是否是图像,以及是否检索 alt 标签信息。
解决方案
您可以像使用 xpath 一样检索链接:
$dom = new \DOMDocument();
@$dom->loadHTML('<html><body><a href="index.php"><img src="img.png">sdqsdsdq</a>');
$xpath = new \DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body/a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
//$img = $href->evaluate("img");
$url = $href->getAttribute('href');
$rel = $href->getAttribute('rel');
$anchortext=$href->nodeValue;
// get images
$nodes = $href->childNodes;
$contentAnImage = 0;
$images = array();
foreach ($nodes as $node) {
if ($node->nodeName == 'img'){
$contentAnImage = 1;
// if you want the image src:
$images[] = $node->getAttribute('src');
}
}
}
推荐阅读
- flutter - 扑。如何为重新排序的 ListView 设置动画?
- python - PYTHON / TKINTER - 如何访问另一个类中的变量
- node.js - 在“npm”注册表中找不到“main@0.1.0”所需的包“react-scrips@4.0.1”
- vba - 安装 AccessDeveloperExtensions.exe 和 AccessRuntime.exe 后,MS Access 2007 报告导出不起作用
- javascript - 点击计算总和并追加总和?
- google-apps-script - 如何在多个谷歌表格上授予/撤销对多个用户的访问权限
- javascript - 如何根据其他参数从对象数组中获取值?
- python - 如何为 Python repl 着色
- ios - NativeScript Vue:FormattedString 和 Label 截断 IPHONE 上的字符串
- java - 如何按包含非英文字符的字段按字母顺序对 ArrayList 进行排序?爪哇