Почему моя переменная PHP, созданная моим запросом xpath, выдает фатальную ошибку «Объект класса DOMAttr не может быть преобразован в строку»? - PullRequest
1 голос
/ 21 ноября 2011

Итак, я задал вопрос, чтобы выяснить, почему мой PHP-код, предназначенный для захвата единственного MP3-URL-адреса, который присутствует в каждом из моего содержимого Post в моей установке Wordpress, для пользовательского использования содержимого здесь >> Почему моя правильно определенная переменная не оценивает длину правильно (и впоследствии работает в остальной части моего кода)?

Я сделал несколько правок и обновлений, и теперь мне нужно переформулировать вопрос и контекст. Пользователь mrtsherman указывает, что в соответствии с порядком, в котором я написал код, я переопределяю $ doc, но не загружаю его в $ xpath, однако при попытке настроить этот код выдает фатальную ошибку " Объект класса DOMAttr не удалось преобразовать в строку"в строке в самом конце, где я повторяю переменную $ BEmp3s, конечный результат всего этого. Значит ли это, что он не может преобразовать атрибуты в строку, я думаю ??

Я знаю, что я настолько близок к решению, что это почти убивает меня, но я также думаю, что слишком долго и слишком долго смотрел на этот путь. Любое понимание является золотым в этой точке! Вот мой код, который теперь правильно разветвляется:

<?php
    // Start MP3 URL
    $doc   = new DOMDocument();
    $doc->strictErrorChecking = FALSE;

    $xpath = new DOMXpath($doc);
    // End MP3 URL

    $a = 1;
    if (have_posts()) :
        while ( have_posts() ) : the_post();
?>
<?php
$BEpost_content = get_the_content();
if (strlen($BEpost_content) > 0) {
    echo "<div id='debug_content'>get_the_content has something</div>";
} else {
    echo "<div id='debug_content'>BEpost_content is empty</div>" ;
};
$success = $doc->loadHTML($BEpost_content);
$xpath = new DOMXpath($doc);
if ($success === FALSE) {
    echo "<div id='debug_loadcontent'>loadHTML failed to load post content</div>";
} else {
    $hrefs = $xpath->query("//a[contains(@href,'mp3')]/@href");
    if ($hrefs->length > 0) {
        echo "<div id='debug_xpath'>xpath found something</div>";
    } else {
        echo "<div id='debug_xpath'>xpath found nothing</div>";
    };
    $BEmp3s = $hrefs->item(0);
};
?>
<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>

1 Ответ

1 голос
/ 21 ноября 2011
 mp3: "<?php echo $BEmp3s->value; ?>"

Попробуйте использовать значение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...