Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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
Javascript 使用php获取JSFIDLE结果iframe源代码_Javascript_Php_Curl_File Get Contents_Jsfiddle - Fatal编程技术网

Javascript 使用php获取JSFIDLE结果iframe源代码

Javascript 使用php获取JSFIDLE结果iframe源代码,javascript,php,curl,file-get-contents,jsfiddle,Javascript,Php,Curl,File Get Contents,Jsfiddle,我有一个朋友在家过着幸福的生活 如果导航到查看源代码:https://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/我可以查看小提琴的完整渲染源代码 我需要在php脚本中获得完整的呈现源代码 以下是我尝试过的: 文件获取内容(): $src=file\u get\u contents('https://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/'); 回显“.$src.”; 卷曲

我有一个朋友在家过着幸福的生活

如果导航到
查看源代码:https://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/
我可以查看小提琴的完整渲染源代码

我需要在php脚本中获得完整的呈现源代码

以下是我尝试过的:

文件获取内容():
$src=file\u get\u contents('https://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/');
回显“.$src.”;
卷曲:
$ch=curl\u init('https://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);
$content=curl\u exec($ch);
卷曲关闭($ch);
回显“.$content.”;
在这两种情况下,我最终得到的都是页面的源代码,它将我的小提琴的源代码呈现为iFrame而不是实际小提琴的源代码

要查看结果,请转到


有没有办法,我可以使用PHP复制使用
查看源代码:
获得的结果,或者至少获取值,然后将其发送到我的PHP脚本?您只需将curl选项中的referer设置为正在加载的同一页面:

$url = 'https://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, $url);
$content = curl_exec($ch);
curl_close($ch);
echo '<textarea>'.$content.'</textarea>';
$url='1!'https://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/';
$ch=curl\u init($url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);
curl_setopt($ch,CURLOPT_REFERER,$url);
$content=curl\u exec($ch);
卷曲关闭($ch);
回显“.$content.”;
试试:

$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,”http://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/"); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$headers=array();
$headers[]=“连接:保持活动状态”;
$headers[]='引用者:http://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/';
$headers[]=“DNT:1”;
$headers[]='接受:text/html、application/xhtml+xml、application/xml;q=0.9,图像/webp,*/*;q=0.8';
$headers[]='接受语言:en-US,en;q=0.8';
$headers[]=“缓存控制:最大年龄=0”;
//$headers[]=“接受编码:gzip、deflate、sdch”;
$headers[]=“主机:fiddle.jshell.net”;
$headers[]=“升级不安全请求:1”;
$headers[]=“用户代理:Mozilla/5.0(Windows NT 6.1;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/52.0.2743.10 Safari/537.36”;
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
$server\u output=curl\u exec($ch);
卷曲关闭($ch);
回显'.$server_output'';

如果查看源代码,会发生什么情况:https://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/@Rayon不幸的是,我得到的Im假设
查看源代码:
是一个curl不了解的浏览器结构,如果你将wget设置为“”,你会得到什么?是的,就是这样。你介意简要解释一下为什么我们需要设置推荐人吗?我看了一遍,但还不清楚。我猜是这样的,服务器将在url中看到创建内容或将其指向正确端点所需的信息?@delighteddod-我只能猜测,jshell.net上可能有服务器端的东西检查引用者并相应地提供iframe内容,因为它与页面本身。这似乎产生了编码或CurpDutt输出,看到并按下“run”OH是正确的,这是因为GZIP编码头,移除它将解决问题,但是解决方案与考虑引用者的比利诺亚相同。@ VPARARTH是什么意思?
$ch = curl_init('https://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$content = curl_exec($ch);
curl_close($ch);
echo '<textarea>'.$content.'</textarea>';
$url = 'https://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, $url);
$content = curl_exec($ch);
curl_close($ch);
echo '<textarea>'.$content.'</textarea>';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$headers = array();
$headers[] = 'Connection: keep-alive';
$headers[] = 'Referer: http://fiddle.jshell.net/DelightedDoD/yu6nekv4/show/light/';
$headers[] = 'DNT: 1';
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
$headers[] = 'Accept-Language: en-US,en;q=0.8';
$headers[] = 'Cache-Control: max-age=0';
// $headers[] = 'Accept-Encoding: gzip, deflate, sdch';
$headers[] = 'Host: fiddle.jshell.net';
$headers[] = 'Upgrade-Insecure-Requests: 1';

$headers[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.10 Safari/537.36';


curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$server_output = curl_exec ($ch);

curl_close ($ch);

echo '<textarea>'.$server_output .'</textarea>';