【问题标题】:PHP Count characters inside title tagPHP计数标题标签内的字符
【发布时间】:2017-02-15 11:04:02
【问题描述】:

我正在尝试计算标题标签中的文本。但这似乎不起作用。我尝试过 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}}

【问题讨论】:

  • strlen() 在多字节编码时不会给出预期的结果。

标签: php count strlen


【解决方案1】:
$title_tag = $dom->getElementsByTagName('title');
foreach($tital_tag as $title){
$title_length = strlen($title->nodeValue);
}

您需要遍历标题标签...这并不意味着您有多个标签。 Dom 只返回需要访问的对象 然后你得到标题的长度

【讨论】:

  • 你就是男人!它可以工作,但唯一的问题是它输出这个:“69 12”。 69 是正确的,但我不想输出 12。我该怎么做?我也会再次阅读文档。
  • 显示屏幕截图..我认为它不应该那样返回
  • 这是我尝试过的网站的问题。我试过其他网站,效果很好!谢谢你,我的好先生!
【解决方案2】:

根据documentationDOMDocument::getElementsByTagName 返回一个DOMNodeList 对象,而不是字符串。

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      你不能这样做,因为 getElementsByTagName() 函数所做的是返回“一个 NodeList 对象,表示具有指定标签名称的元素集合。”。

      即。如果你在一个 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>

      注意:返回集合中的元素按照它们在源代码中出现的方式排序。

      【讨论】:

        猜你喜欢
        • 2014-07-17
        • 1970-01-01
        • 2017-07-03
        • 1970-01-01
        • 2016-04-19
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        • 2011-01-05
        相关资源
        最近更新 更多