2014-01-13 51 views
0

我有了這個代碼,其上的HTML代碼的一個div添加一個YouTube頻道($ _ POST)的視頻(和視頻的相關信息):PHP的使用Javascript的Youtube API錯誤

var args= "url="+urlchaine; 
    xhr_object.open("POST", "traitement.php", true); 
xhr_object.onreadystatechange = function() { 
    if(xhr_object.readyState == 4) { 
      eval(xhr_object.responseText); 
     } 
     return xhr_object.readyState; 
} 
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xhr_object.send(args); 

traitement.php:

<?php 
if (isset($_POST["url"]) && !empty($_POST["url"])) 
$urlchaine = $_POST["url"]; 
else 
$urlchaine = null; 

$stringresult = str_replace("http://www.youtube.com/user/", "",$urlchaine); 

require_once "Zend/Loader.php"; 
Zend_Loader::loadClass('Zend_Gdata_YouTube'); 
$yt = new Zend_Gdata_YouTube(); 
//Get Video info with channel name $stringresult 
$videoFeed = $yt->getVideoFeed('http://gdata.youtube.com/feeds/users/...'); 

if ($stringresult != null){ 
    echo "var mydiv = document.getElementById('vids');"; 
    echo "var newcontent = document.createElement('div');"; 

    foreach ($videoFeed as $v): $thumbs = $v->getVideoThumbnails(); 
    $videoId = $v->getVideoId(); 
    $thumb = $thumbs[0]['url']; 
    $videoViewCount = $v->getVideoViewCount(); 
    $videoTitle = $v->getVideoTitle(); 
echo "newcontent.innerHTML = 
'<div class=\"videos\">' + 
' <div class=\"img_videos\">' + 
' <img class=\"img_video\" width=\"250\" idvideo=\"".$videoId."\" ' + 
' src=\"".$thumb."\"/>' + 
' </div>' + 
' <h3>$videoTitle</h3>' + 
' <p>$videoViewCount views</p>' + 
'</div>' ;"; 
echo "mydiv.appendChild(newcontent.firstChild);"; 
endforeach; 
?> 

的問題是,當我想這樣做,它有一些渠道作品完美,而一個錯誤已經存在了別人(未捕獲的SyntaxError:意外的標識)。經過多次測試,我看到通過刪除$ videoTitle的顯示,每個通道測試都能正常工作。我的代碼有什麼問題? O.o

回答

0

$videoTitle似乎在某些情況下包含一個簡單的引用,它會破壞您的JS代碼。

嘗試逃離這個報價時,是這樣的:

str_replace("'", "&sbquo;", $videoTitle) 
+0

你是一個天才。它現在有效。謝謝 !!! – user3185672