PHP 计算标题标签内的字符数

PHP Count characters inside title tag

我正在尝试计算标题标签中的文本。但这似乎不起作用。我试过 count()、strlen() 等。例如:

<title>Count me!</title>

当我使用 strlen() 时出现此错误:

strlen() expects parameter 1 to be string, object given

当我使用 count 时,你只得到 2。我认为它计算了我文件中的标题标签。

控制器:

$title = $dom->getElementsByTagName('title');
$count = strlen($title);

索引:

{{$count}}
$title_tag = $dom->getElementsByTagName('title');
foreach($tital_tag as $title){
$title_length = strlen($title->nodeValue);
}

您需要遍历标题标签...这并不意味着您有多个标签。 Dom 简单地 return object 需要访问 然后你得到标题的长度

根据documentation, DOMDocument::getElementsByTagName returns a DOMNodeList对象,不是字符串。

您需要使用 foreach 循环遍历列表中的元素并检索每个节点值的长度。

只是使用 jquery 的替代方法,您可以按如下方式计算字符数:

<script type="text/javascript">
$(document).ready(function(){
    var title = $(document).prop('title').length; 
    console.log(title);
});

</script> 

你不能仅仅这样做就得到结果,因为 getElementsByTagName() 函数所做的是 return "A NodeList object, representing a collection of elements with the specified tag name.".

即。如果你在 ul 标签上调用它,它会为你提供该 ul 中的 li 标签集合。

不过你可以试试这个;

<html>
<head>
 <title>Heello</title>
</head>
<body>
 <script type="text/javascript">
  var text = document.getElementsByTagName("title")[0].innerHTML.length;//get the length of the first title tag
  alert(text);//text no contains the length of characters within the title tag
 </script>
</body>
</html>

注意:returned 集合中的元素按它们在源代码中出现的顺序排序。