2015-05-30 57 views
0

我有一個網站,其中包含一個包含CDN JS文件的插件加載變量。此CDN JS文件使用$document.write();在PHP變量中修改/加載CDN JS的內容

將一些HTML寫入我的網站現在,我想修改此內容$document.write();如何將CDN請求的結果加載到變量?

對於如: 我的PHP代碼:

現在什麼都這個腳本調用我想將它存儲在一個變量&後來呼應到我的網站
$var = '<script type="text/javascript" src="http://edeetion.com/ebayproxy/index.js.php?&requestType=EBaySeller&sellerID=holyheadmusic&maxEntries=2&openlink=_blank&categoryId=&sortOrder=EndTimeSoonest&item.filter(0).name=ListingType&item.filter(0).value(0)=All&sourceSite=3&floatorder=floating&displaydate=true&proxy_display_language=en"></script>'; 
echo $var; 

。 相反,它只是回聲這個腳本。這個腳本正在呼籲& $document.write做它的東西。我沒有任何控制權。

我已經嘗試了一個使用preg_replace()的解決方案,但只有在HTML內容可以加載到PHP變量中時才能使用。

請幫忙!

回答

1

分享,因爲它可能對別人有用。

找到了解決

$doc = new DOMDocument(); 
@$doc->loadHTML($resp); 
$xpath = new DOMXPath($doc); 
$src = $xpath->evaluate("string(//script/@src)"); 

$Vdata = file_get_contents($src); 

這樣$Vdata包含CDN的內容JS &我可以修改進一步使用preg_replace();

其內容於是主人公這裏是file_get_contents();

0

爲什麼不在服務器上使用該腳本?因爲你現在正在做的是試圖從你的服務器處理腳本,而這隻會破壞CDN的目的。而是在您的服務器上使用它,然後您將完全控制它。

+0

它的由我正在使用的工具生成的腳本。它的動態性和參數不斷變化,因此我無法將其變爲本地。 – Amrit