PHPQuery未将元详细信息提取到数组中

PHPQuery未将元详细信息提取到数组中,php,web-scraping,phpquery,Php,Web Scraping,Phpquery,我正在尝试使用PHPQuery()从我的网站中获取数据。 我想从页面中提取元信息 以下是我迄今为止所尝试的: $html = phpQuery::newDocumentHTML($file, $charset = 'utf-8'); $MetaItems = []; foreach (pq('meta') as $keys) { $names = trim(strtolower(pq($keys)->attr('name'))); if ($names !== null

我正在尝试使用PHPQuery()从我的网站中获取数据。 我想从页面中提取元信息

以下是我迄今为止所尝试的:

$html = phpQuery::newDocumentHTML($file, $charset = 'utf-8');

$MetaItems = [];
foreach (pq('meta') as $keys) {
    $names = trim(strtolower(pq($keys)->attr('name')));
    if ($names !== null && $names !== '') {
        array_push($MetaItems, $names);
    }
}
            
for ($i=0; $i < count($MetaItems); $i++) {
    $test = 'meta[name="' . $MetaItems[$i] . '"]';
    echo pq($test)->html();
}
$html=phpQuery::newDocumentHTML($file,$charset='utf-8');
$MetaItems=[];
foreach(pq(“元”)作为$keys){
$names=trim(strtolower(pq($keys)->attr('name'));
如果($names!==null&&$names!=''){
数组\u push($MetaItems,$names);
}
}
对于($i=0;$ihtml();
}
以上: 在
$MetaItems
中,我获得了所有的元属性
name
。该数组已正确填充。

但是,选择和提取文本不起作用。如何使上述代码正常工作?
谢谢。

假设您提取的值与您试图获取的名称属性的值完全相同。。。我很确定
name
属性的值是区分大小写的。您需要拆下strtolower和饰件。两者都可能引发问题。我将用以下内容替换第一部分:

$html = phpQuery::newDocumentHTML($file, $charset = 'utf-8');

$MetaItems = [];
foreach (pq('meta') as $keys) {
    $names = pq($keys)->attr('name');
    if (!empty($names) && trim($names)) {
        array_push($MetaItems, $names);
    }
}

希望这有助于

假设您提取的值与您试图获取的名称属性的值完全相同。。。我很确定
name
属性的值是区分大小写的。您需要拆下strtolower和饰件。两者都可能引发问题。我将用以下内容替换第一部分:

$html = phpQuery::newDocumentHTML($file, $charset = 'utf-8');

$MetaItems = [];
foreach (pq('meta') as $keys) {
    $names = pq($keys)->attr('name');
    if (!empty($names) && trim($names)) {
        array_push($MetaItems, $names);
    }
}

希望这有帮助

您想要一个名为=>内容的assoc数组,对吗?试试这个:

$metaItems = array();
foreach(pq('meta') as $meta) {
  $key = pq($meta)->attr('name');
  $value = pq($meta)->attr('content');
  $metaItems[$key] = $value;
}

var_dump($metaItems);

您想要一个名为=>content的assoc数组,对吗?试试这个:

$metaItems = array();
foreach(pq('meta') as $meta) {
  $key = pq($meta)->attr('name');
  $value = pq($meta)->attr('content');
  $metaItems[$key] = $value;
}

var_dump($metaItems);

var\u dump
你的
$MetaItems
看看它得到了什么。@Ravi:
$MetaItems
是正确的,它给了我一个数组,数组中有值
描述
关键字
作者
你的
var\u dump
看看它得到了什么。@Ravi:
$MetaItems
是正确的,它为我提供了一个数组,其中包含值
description
关键字
作者
。。。