2014-04-03 31 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)' –