Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的回声是';d PHP变量仍然不产生任何结果?_Php_Variables_Xpath_Extract_Href - Fatal编程技术网

为什么我的回声是';d PHP变量仍然不产生任何结果?

为什么我的回声是';d PHP变量仍然不产生任何结果?,php,variables,xpath,extract,href,Php,Variables,Xpath,Extract,Href,我最近得到了一个关于如何处理从HTML内容中提取URL的极好答案: 但是在实现代码之后,我仍然没有显示变量的echo调用。我知道如果我回显get_the_content(),它会显示整个帖子的正文,但可能loadHTML()没有正确处理它?我实现了所提供的代码(据我所知,该代码工作正常,没有错误),并在foreach循环中将提取的URL分配给变量,以便我可以在必要的位置使用它,如下面的代码所示: <?php $doc = new DOMDocument(); $doc

我最近得到了一个关于如何处理从HTML内容中提取URL的极好答案:

但是在实现代码之后,我仍然没有显示变量的echo调用。我知道如果我回显get_the_content(),它会显示整个帖子的正文,但可能loadHTML()没有正确处理它?我实现了所提供的代码(据我所知,该代码工作正常,没有错误),并在foreach循环中将提取的URL分配给变量,以便我可以在必要的位置使用它,如下面的代码所示:

<?php
    $doc   = new DOMDocument();
    $doc->strictErrorChecking = FALSE;
    $xpath = new DOMXpath($doc);

    $a = 1;
    if (have_posts()) :
        while ( have_posts() ) : the_post();
?>
<div class="ORtrack">
    <?php
        $success = $doc->loadHTML(get_the_content());
        if ($success === FALSE) {
            // error handling
        } else {
            $hrefs = $xpath->query("//a[contains(@href,'mp3')]/@href");
            foreach ($hrefs as $href) {
                $BEmp3s = $href;
            }
        };
    ?>
<script type="text/javascript">
    var myCP<?php echo $a; ?> = new CirclePlayer("#jquery_jplayer_<?php echo $a; ?>",
    {
        mp3: "<?php echo $BEmp3s; ?>"
    }, {
        cssSelectorAncestor: "#cp_container_<?php echo $a; ?>",
        volume: 0.5
    });
</script>
    ....
<?php
    endif;
    wp_reset_query();
?>
</div>


如果xpath只返回一个MP3,那么不要使用foreach循环。那太过分了。可以通过执行以下操作检索单个项目:

$BEmp3s = $hrefs->item(0)
您可以检查xpath是否通过

if ($hrefs->length > 0) { ... found something ... }

如果xpath只返回一个MP3,那么不要使用foreach循环。那太过分了。可以通过执行以下操作检索单个项目:

$BEmp3s = $hrefs->item(0)
您可以检查xpath是否通过

if ($hrefs->length > 0) { ... found something ... }

您没有初始化
$BEmp3s
变量。您是否尝试使用
var\u dump
而不是
echo
来查看变量的内容??尝试var\u dump,如果变量为空,则会将内容输出您没有初始化
$BEmp3s
变量。您是否尝试使用
var\u dump
而不是
echo
来查看变量的内容?尝试var\u dump,如果变量为空,则会将内容输出,因为我也只使用了一次MP3 URL,直接引用$hrefs->item(0)而不是将其分配给变量不是最好的吗?如果你能保证总是至少有一个结果,那么当然。既然我也只使用MP3 URL一次,那么引用$hrefs->item(0)不是最好的吗直接,甚至不把它赋给变量?如果你能保证总是至少有一个结果,那就确定了。