2017-02-15 19 views
0

我正在計數標題標記內的文字。但它似乎並不奏效。我試着數(),strlen的()等。例如:當我使用計數ü只得到2PHP在標題標記內計算字符

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

<title>Count me!</title> 

當我使用的strlen()我得到這個錯誤。我認爲它計算了我文件中的標題標籤。

控制器:

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

指數:

{{$count}} 
+0

'strlen()'不會給出多字節編碼的預期結果。 –

回答

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

你需要通過標題標籤環......這並不意味着你有多個標籤。大教堂簡單地返回對象,它需要訪問 ,然後你拿到冠軍

+0

你是男人!它有效,但唯一的問題是它輸出這個:「69 12」。 69是正確的,但我不想輸出12.我該怎麼做?我還會再次閱讀文檔。 – itvba

+0

顯示屏幕截圖..我不認爲它應該像那樣返回 –

+0

這是我嘗試過的網站的問題。我試過其他網站,並且完美無缺!謝謝你,我的好先生! – itvba

0

的長度按照documentationDOMDocument::getElementsByTagName返回DOMNodeList對象,而不是一個字符串。

您需要用foreach循環遍歷列表中的元素並檢索每個節點值的長度。

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

</script> 
0

只是使用jQuery替代如下,你可以指望的字符具有指定標籤名稱的元素的集合。「。

即。如果你在ul標籤上調用它,它會給你一個ul標籤集合。

你可以試試這個;

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

注:因爲它們出現在源代碼中返回的集合中的元素進行排序。

0

不能達到的效果正是這樣做的,因爲什麼的getElementsByTagName()函數的作用是回報「的NodeList對象,表示: