【问题标题】:Save images from url strings从 url 字符串中保存图像
【发布时间】:2015-07-01 20:07:16
【问题描述】:

我有一个.ashx 文件,其中包含一堆 url(指向图像)作为空白文本。

我想做的是:

  • 读取文件
  • 按url排序图片:
  • .../img/product/004/big/004-30.jpg
  • .../img/product/004/big/004-31.jpg
  • ...
  • ../img/product/007/big/007-21.jpg
  • 将图像保存在远程服务器上

因此它们位于“单独的”文件夹中。

到目前为止我得到了什么:

<?php
    $file = fopen("http://versailles.edem.ua/imglist.ashx","r");
    $fileArray = array();
    while (($line = fgets($file)) !== false) {
        $fileArray[] = $line;
    }

    //SORT THE ARRAYS BY NAME (See above)

    //DETECT IMAGES FROM THIS STRING-ARRAY

    //SAVE EACH IMAGE ON A REMOTE SERVER IN A SPECIFIC FOLDER (004, 007)
?>

// EDIT CODE
<?php
$file = fopen("http://versailles.edem.ua/imglist.ashx","r");
$fileArray = array();
while (($line = fgets($file)) !== false) {
    $fileArray[] = $line;
}

usort($fileArray, function ($elem1, $elem2) {
     return strcmp($elem1['title'], $elem2['title']);
});

print_r($fileArray);
?>

【问题讨论】:

    标签: php server


    【解决方案1】:

    //按名称排序数组(见上文)

    你应该使用usort()(我在这里假设 PHP 5.3+):

    usort($your_array, function ($elem1, $elem2) {
         return strcmp($elem1['title'], $elem2['title']);
    });
    

    //从此字符串数组中检测图像

    对于数组中的每个字符串,使用strrpos验证它是否包含“.jpg”

    strrpos($foo, '.jpg', -4)
    

    //将每个图像保存在远程服务器上的特定文件夹中 (004, 007)

    使用copy函数:

    copy('http://www.google.co.in/img/product/004/big/004-30.jpg', '/tmp-folder/004-30.jpeg');
    

    【讨论】:

    • 目前.ashx 文件的每一行都是一个数组。是否可以按数组的特定值对这些数组进行排序?
    • 我收到此错误消息Warning: Illegal string offset 'title' in C:\xampp\htdocs\php\index.php on line 9 - 检查我更新的答案。
    • 你必须用你的元素索引替换title
    • 索引正在改变。 http://versailles.edem.ua/img/product/004/big/004-30.jpg - 我想按/product/ 后面的数字对这些网址进行排序
    • 您可以使用strpos 仅获取此号码
    猜你喜欢
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2015-07-25
    相关资源
    最近更新 更多