PHP从shell_exec获取一些部分
我需要你们的帮助伙计们我的服务器上运行了一些php代码:PHP从shell_exec获取一些部分,php,curl,terminal,shell-exec,Php,Curl,Terminal,Shell Exec,我需要你们的帮助伙计们我的服务器上运行了一些php代码: <?php if ($_GET['id']) $id = $_GET['id']; $json = file_get_contents('http://www.youtubeinmp3.com/fetch/?format=JSON&video=http://www.youtube.com/watch?v=' . $id); $data = json_decode($json, true); $stream =
<?php
if ($_GET['id'])
$id = $_GET['id'];
$json = file_get_contents('http://www.youtubeinmp3.com/fetch/?format=JSON&video=http://www.youtube.com/watch?v=' . $id);
$data = json_decode($json, true);
$stream = $data['link'];
$url = $stream;
$output = shell_exec ('curl -I -L ' . $url);
echo "<pre>$output</pre>";
?>
但我不需要这些东西我只需要两样东西:
(位置:)和(内容处置:附件;文件名=)
在两个不同的变量中,因此在这种情况下,我需要:
//w23.youtubeinmp3.com/download/get/?id=HgzGwKwLmgM&r=kT7YFcbHgX3m25ULP3GeWulVx9OmT2qd&t=Queen+-+Don%27t+Stop+Me+Now+%28官方+视频%29
及
女王-现在不要阻止我(官方视频)(顺便说一句,我不要.mp3)
我到处都在网上搜索过,但说实话,我在这方面完全是个傻瓜
因此,如果有人能帮我解决这个问题,如果你只想要你在问题上所写的文件名和标题,那就太棒了 你可以这样简单地使用它们
echo "<a href=$link>$title</a>";
<?php
if (isset($_GET['id'])) {
$id = $_GET['id'];
$json = file_get_contents('http://www.youtubeinmp3.com/fetch/?format=JSON&video=http://www.youtube.com/watch?v=' . $id);
$data = json_decode($json, true);
$link = $data['link'];
$title = $data['title'];
echo "<a href=$link>$title</a>";
}
?>
一旦你有了它,你可以像这样打印它或与它建立链接
echo "<a href=$link>$title</a>";
<?php
if (isset($_GET['id'])) {
$id = $_GET['id'];
$json = file_get_contents('http://www.youtubeinmp3.com/fetch/?format=JSON&video=http://www.youtube.com/watch?v=' . $id);
$data = json_decode($json, true);
$link = $data['link'];
$title = $data['title'];
echo "<a href=$link>$title</a>";
}
?>
echo”“;
除非要保存文件,否则不需要curl(和shell_Exec)部分
它看起来像这样:
<?php
header('content-type: text/plain');
$id='HgzGwKwLmgM';
$json = file_get_contents('http://www.youtubeinmp3.com/fetch/?format=JSON&video=http://www.youtube.com/watch?v=' . $id);
$json = json_decode($json, true);
$url = $json['link'];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$header = curl_exec($ch);
$link = curl_getinfo($ch,CURLINFO_REDIRECT_URL);
echo "\nLINK: $link\n\nHEADER: $header";
?>
此代码经过测试。已从我的浏览器复制响应。
我只是使用curl来执行curl请求,并使用
curl\u getinfo($ch,CURLINFO\u REDIRECT\u URL)
来获取重定向链接。我还添加了获取您不需要的标题,除非有问题并且您希望看到响应标题。
PHP
要查看工作示例:我不需要使用curl来跟随重定向来获取直接链接,您只需使用preg_匹配:preg_匹配('(位置:.*),$output,$result);
LINK: http://w23.youtubeinmp3.com/download/get/?id=HgzGwKwLmgM&r=aRDQ1MGdfkY3Mm6EFxQqEVqgd9FHf81q&t=Queen+-+Don%27t+Stop+Me+Now+%28Official+Video%29
HEADER: HTTP/1.1 302 Moved Temporarily
Date: Sun, 12 Feb 2017 16:23:39 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __cfduid=d27df4bad722b0449b88b37d4b9d9b7341486916619; expires=Mon, 12-Feb-18 16:23:39 GMT; path=/; domain=.youtubeinmp3.com; HttpOnly
X-Powered-By: PHP/5.5.38
Location: //w23.youtubeinmp3.com/download/get/?id=HgzGwKwLmgM&r=aRDQ1MGdfkY3Mm6EFxQqEVqgd9FHf81q&t=Queen+-+Don%27t+Stop+Me+Now+%28Official+Video%29
Server: cloudflare-nginx
CF-RAY: 330162e8b07e115f-DFW