为什么我的回声是';d PHP变量仍然不产生任何结果?
我最近得到了一个关于如何处理从HTML内容中提取URL的极好答案: 但是在实现代码之后,我仍然没有显示变量的echo调用。我知道如果我回显get_the_content(),它会显示整个帖子的正文,但可能loadHTML()没有正确处理它?我实现了所提供的代码(据我所知,该代码工作正常,没有错误),并在foreach循环中将提取的URL分配给变量,以便我可以在必要的位置使用它,如下面的代码所示:为什么我的回声是';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
<?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)不是最好的吗直接,甚至不把它赋给变量?如果你能保证总是至少有一个结果,那就确定了。