如何使用 PHP 以默认名称将图像保存在我的服务器中?

How can I save images in my server with their default name using PHP?

我想知道如何使用默认名称或原始名称从服务器的 "images" 目录中的 URL 保存图像。 我要保存的图片有两种类型URL,最常见的一种显示图片名称和扩展名,另一种隐藏它。

示例:

https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-xtf1/t31.0-8/p960x960/12244276_1007140432640240_2083118789257532219_o.jpg

https://fbcdn-sphotos-f-a.akamaihd.net/hphotos-ak-xfa1/v/t1.0-9/11070008_891891757498442_2110055736558514695_n.jpg?oh=aed45e8772757a932e8001f2024be09d&oe=57169246&gda=1459966832_bd13f474178cc030348f8fdc0dc0eafd

...我想用来保存它们的名称是当您右键单击它们和 select "save image as..." 时出现的默认名称,在这种情况下:12244276_1007140432640240_2083118789257532219_o.jpg 和 11070008_891891757498442_2110055736558514695_n.jpg 分别。

我试过类似 pathinfo 函数的东西,但它不起作用。

<?php
$partes_ruta = pathinfo('https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-xtf1/t31.0-8/p960x960/12244276_1007140432640240_2083118789257532219_o.jpg');

echo $partes_ruta['dirname'], "\n";
echo $partes_ruta['basename'], "\n";
echo $partes_ruta['extension'], "\n";
echo $partes_ruta['filename'], "\n"; // desde PHP 5.2.0

?> 

因为我有一个西班牙导航器,它总是说错误:"La codificación de caracteres del documento HTML no fue declarada. El documento se verá con basura en el texto en algunas configuraciones de navegadores si el documento contiene caracteres fuera del rango US-ASCII. La codificación de caracteres de la página debe declararse en el documento o en el protocolo de transferencia." 这意味着没有声明 HTML 文档的字符编码信息,如果文档包含超出 US-ASCII 范围的字符,则文档可能会显示为脏的。必须声明字符编码。

有什么想法吗?谢谢!

我会尝试用 explode

解析 URL
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
@mkdir("images");
$end = end(explode("/", $url));
file_put_contents("images/$end", $output);

我发现如果我添加 HTML 代码,脚本就可以工作,我不知道为什么需要这个,因为页面是 php 页面,但它是通过这种方式工作的。

<?php

$partes_ruta = pathinfo('https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-xtf1/t31.0-8/p960x960/12244276_1007140432640240_2083118789257532219_o.jpg');
echo $partes_ruta['basename'], "\n";

?>

<!DOCTYPE HTML>
<head><meta charset="utf-8"></head>
<body></body>
</html>