Php 获取与文件一起存储的内容\u获取\u内容

Php 获取与文件一起存储的内容\u获取\u内容,php,Php,好的,所有的东西都被正确保存了,但是我怎样才能得到我保存的文件的url呢 $songs = file_get_contents('https://example.com/tracks/'.$id.'/'); file_put_contents('./tmp/' . stripslashes(htmlspecialchars($songTitle)) . '.mp3', $songs); 无需手动获取每个url,请注意,我是一名仍在学习的新开发人员。。但是有什么东西我可以直接回显到 编辑:”。条

好的,所有的东西都被正确保存了,但是我怎样才能得到我保存的文件的url呢

$songs = file_get_contents('https://example.com/tracks/'.$id.'/');
file_put_contents('./tmp/' . stripslashes(htmlspecialchars($songTitle)) . '.mp3', $songs);
无需手动获取每个url,请注意,我是一名仍在学习的新开发人员。。但是有什么东西我可以直接回显到


编辑:
”。条纹斜杠(htmlspecialchars($songTitle))。'这只是我们正在下载的文件名,与该字符串无关。

您不能,至少不能直接,因为它不以这种方式工作:文件系统不一定转换为URL


例如,在您的例子中,您正在将文件保存到tmp目录中。我怀疑外部世界是否可以以任何方式访问目录,即它的公共URL比您在浏览器中可以访问的要多。

您不能,至少不能直接访问,因为它不以这种方式工作:文件系统不必转换为URL


例如,在您的例子中,您正在将文件保存到tmp目录中。我怀疑外部世界是否可以以任何方式访问目录,即它的公共URL超出了您在浏览器中的访问权限。

这取决于您的设置,但如果您的脚本位于外部可访问的位置,并且您信任
$\u服务器
客户端定义的字段,您可以使用
\uuuuuu文件
$\u服务器
来完成您想要的任务

以下代码假定:

  • 您的服务器不在HTTPS上
  • 子目录
    tmp
    中的文件可以从外部访问
  • 您可以写入子目录
    tmp
  • $\u服务器['HTTP\u主机']
    $\u服务器['REQUEST\u URI']
    可以“信任”
试试这个:

// This is the only thing you need to set to your taste.
$dest_rel_path = 'tmp/' . stripslashes(htmlspecialchars($songTitle)) . '.mp3';

// This is the final file path in your filesystem.
// `dirname(__FILE__)` can be replaced with __DIR__ in PHP >= 5.3.0
// and the str_replace() part makes the code portable to Windows.
$filesystem_path = dirname(__FILE__) . DIRECTORY_SEPARATOR . str_replace('/', DIRECTORY_SEPARATOR, $dest_rel_path);

$songs = file_get_contents('https://example.com/tracks/'.$id.'/');
file_put_contents($filesystem_path, $songs);

// This takes the URL that the user requested and replaces the
// part after the last '/' with our new .mp3 location.
$req_uri = $_SERVER['REQUEST_URI'];
$url_path = substr($req_uri, 0, 1 + strrpos($req_uri, '/')) . $dest_rel_path;
$url = 'http://' . $_SERVER['HTTP_HOST'] . $url_path;
echo "<a href=\"$url\">This is my link to $songTitle!</a>";
//这是您唯一需要根据自己的口味设置的东西。
$dest_rel_path='tmp/'。条纹斜杠(htmlspecialchars($songTitle))。mp3′;
//这是文件系统中的最终文件路径。
//在PHP>=5.3.0中,`dirname(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//str_replace()部分使代码可移植到Windows。
$filesystem\u path=dirname(\u文件\u)。目录分隔符。str_replace(“/”,目录分隔符,$dest_rel_path);
$songs=文件\u获取\u内容('https://example.com/tracks/“.$id./”);
文件内容($filesystem\u path,$songs);
//这将获取用户请求的URL并替换
//在最后一个“/”之后使用新的.mp3位置进行分割。
$req_uri=$_服务器['REQUEST_uri'];
$url\u path=substr($req\u uri,0,1+strrpos($req\u uri,'/'))$目的地相关路径;
$url='http://'$_服务器['HTTP_HOST']$url\u路径;
回声“;

这取决于您的设置,但如果您的脚本位于外部可访问的位置,并且您信任
$\u服务器
客户端定义的字段,则可以使用
\u文件
$\u服务器
来完成您想要的任务

以下代码假定:

  • 您的服务器不在HTTPS上
  • 子目录
    tmp
    中的文件可以从外部访问
  • 您可以写入子目录
    tmp
  • $\u服务器['HTTP\u主机']
    $\u服务器['REQUEST\u URI']
    可以“信任”
试试这个:

// This is the only thing you need to set to your taste.
$dest_rel_path = 'tmp/' . stripslashes(htmlspecialchars($songTitle)) . '.mp3';

// This is the final file path in your filesystem.
// `dirname(__FILE__)` can be replaced with __DIR__ in PHP >= 5.3.0
// and the str_replace() part makes the code portable to Windows.
$filesystem_path = dirname(__FILE__) . DIRECTORY_SEPARATOR . str_replace('/', DIRECTORY_SEPARATOR, $dest_rel_path);

$songs = file_get_contents('https://example.com/tracks/'.$id.'/');
file_put_contents($filesystem_path, $songs);

// This takes the URL that the user requested and replaces the
// part after the last '/' with our new .mp3 location.
$req_uri = $_SERVER['REQUEST_URI'];
$url_path = substr($req_uri, 0, 1 + strrpos($req_uri, '/')) . $dest_rel_path;
$url = 'http://' . $_SERVER['HTTP_HOST'] . $url_path;
echo "<a href=\"$url\">This is my link to $songTitle!</a>";
//这是您唯一需要根据自己的口味设置的东西。
$dest_rel_path='tmp/'。条纹斜杠(htmlspecialchars($songTitle))。mp3′;
//这是文件系统中的最终文件路径。
//在PHP>=5.3.0中,`dirname(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//str_replace()部分使代码可移植到Windows。
$filesystem\u path=dirname(\u文件\u)。目录分隔符。str_replace(“/”,目录分隔符,$dest_rel_path);
$songs=文件\u获取\u内容('https://example.com/tracks/“.$id./”);
文件内容($filesystem\u path,$songs);
//这将获取用户请求的URL并替换
//在最后一个“/”之后使用新的.mp3位置进行分割。
$req_uri=$_服务器['REQUEST_uri'];
$url\u path=substr($req\u uri,0,1+strrpos($req\u uri,'/'))$目的地相关路径;
$url='http://'$_服务器['HTTP_HOST']$url\u路径;
回声“;

很抱歉问了这么一个新手问题!不过我真的很感谢你帮我@打开您需要的系统文件路径?或者公共URL,比如example.com/something/bla.mp3是我正在寻找的,但是当我这样做时,它似乎与上面显示的代码不起作用。无论如何,我可以这样做,包括从开始到结束的整个URL,而不仅仅是从/tmp/forward?我的错,我以为你想要系统文件路径,但他没有把它保存到临时目录。很抱歉问了这么一个新手问题!不过我真的很感谢你帮我@打开您需要的系统文件路径?或者公共URL,比如example.com/something/bla.mp3是我正在寻找的,但是当我这样做时,它似乎与上面显示的代码不起作用。无论如何,我可以这样做,包括从开始到结束的整个URL,而不仅仅是从/tmp/forward?我的错,我以为你想要系统文件路径他没有保存到临时目录等等。。。您需要文件路径或公共URL?等等。。。您需要文件路径或公共URL?@打开没问题!如果它真的很有用,除了标记为已接受之外,您还可以随时向上投票:)@Open没问题!如果它真的很有用,除了标记为已接受之外,您还可以随时向上投票:)