首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用php验证超链接中的纯文本(链接文本)?

如何使用php验证超链接中的纯文本(链接文本)?
EN

Stack Overflow用户
提问于 2012-03-03 16:49:39
回答 4查看 273关注 0票数 0

我正在使用简单的html dom从其他网站获取数据。在获取数据时,它同时获取包含纯文本和非纯文本的超链接。我希望在获取数据时删除不含纯文本(链接文本)的超链接。我已经尝试过下面的代码

代码语言:javascript
复制
if($title==""){ echo "No text";} 

代码语言:javascript
复制
if(ctype_space($title)) { echo "No text";} 

其中$title是从网站获取的明文

但是这两种方法都没有worked..can任何一个有帮助

预先感谢您的帮助

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-03 17:43:25

在你给我们更多关于什么值的信息之前,我最好的猜测是尝试这样的东西

代码语言:javascript
复制
if(empty($title))
{
    echo "No Text";
}
票数 1
EN

Stack Overflow用户

发布于 2012-03-03 17:41:21

它真的需要“纯文本验证”吗?

阅读你的问题,你似乎只想删除空值的链接。

如果是后者,您可以这样做:

代码语言:javascript
复制
$html = <<<EOL
<a href="#">Text</a>
<a href="#"></a>
<a href="#">More Text</a>
<a href="#"></a>
EOL;

$dom = new DOMDocument;
$dom->loadHTML($html);

$links = $dom->getElementsByTagName('a');

foreach ($links as $link) {
    if (strlen(trim($link->nodeValue)) == 0) {
        $link->parentNode->removeChild($link);
    }
}

var_dump($dom->saveHTML());
票数 1
EN

Stack Overflow用户

发布于 2012-03-03 17:55:30

代码语言:javascript
复制
$dom = new DOMDocument;
$dom->loadHTML($html);
$xPath = new DOMXPath($html);

$links_array = $xPath->query("//a"); // select all a tags

$totalLinks = $links_array->length; // how many links there are.

for($i = 0; $i < $totalLinks; $i++) // process each link one by one
{
   $title = $links_array->item($i)->nodeValue; // get LInkText
   if($title == '') // if no link text
   {

      $url = $links_array->item($i)->getAttribute('href');
      // do here what you want 
    }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9544760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档