2014-04-03 32 views
0

我正在使用此代碼來檢索標籤。PHP查詢什麼標籤是單詞。

$title = $pq->find("title")->text(); 
$h1 = $pq->find("h1")->text(); 
$p = $pq->find("p")->text(); 

這是正確的做法嗎?

其次,我必須看看我的數組$array_words中的單詞是在哪個標記中。所以我已經檢索了file_get_contents並刪除了所有標籤並將所有單詞放入數組中。現在,讓我們藉此例如:

Array 
(
    [0] => hello 
    [1] => there 
    [2] => this 
    [3] => is 
    [4] => a 
    [8] => test 
    [9] => array 
) 

,這將是HTML:

<html> 
    <head> 
     <title> 
      hello there 
     </title> 
    </head> 
    <body> 
     <h1> 
      this is a 
     </h1> 
     <p> 
      test array 
     </p> 
    </body> 
</html> 

我如何可以找出哪些字,其中標籤被發現的?

我希望我略微清楚自己想要做什麼。

+0

你在使用什麼庫,或女巫班是你在$ pq變量instanciating? –

+0

@MauricioPiberFão'$ pq = phpQuery :: newDocument($ file);'這是我如何設置'$ pq'如果這就是你的意思= /庫不是隻是PHP 5?我是新來的phpquery,所以原諒我的無知 –

回答

0

基於這個問題,重點在於您需要創建一個引用,其中$ array_words中的哪個單詞位於某個HTML標記中。

所以你有一個你想檢查的標籤數組,對吧?

我看到我這是什麼:

  1. 獲取要檢查所有的標籤。
  2. 將所有標籤放在一個Foreach上以檢查所有。
  3. 在Foreach上,使用phpQuery來查找這些標籤中的單詞。
  4. phpQuery應該返回文本,所以你應該使用爆炸分解到一個名爲「$ words_from_text」的單詞。一個新的數組被創建。
  5. 使用一個「in_array」比較器來放入一個新的foreach(在舊的內部)來查找來自$ array_words的單詞在文本中。
  6. 如果在$ array_words中找到$ words_from_text中的Key,則通過設置附加到標籤密鑰的新數組來放入標籤數組。

    $ array_tags =( 'H1', 'DIV', '標題', )

    $ array_words = ( [0] =>你好 [1] =>有 [2] =>此 [3] =>是 [4] =>一個 [8] =>測試 [9] =>數組 )

的結果陣列天線的最終應該是這樣的:

$array_tags = array(
    ['title'] = array('word1','word2'), 
    ['h1'] = array('word3','word4'), 
    ['div'] = array('word5','word6') 
); 

所以,如果這個例子是你需要什麼,你可以用這個準則來解決問題。

+0

感謝您的幫助!但我決定這樣做:首先我設置'$ title'就像我在問題中所做的那樣。然後在我的'$ array_words'的foreach循環中,我添加了如下所示的if:if(strpos($ title,$ key)!== false)' –