从网页获取文件并使用file_put_contents保存

时间:2015-05-21 15:07:52

标签: php file-put-contents

我尝试制作一个脚本,可以将名称模式的网页中的所有文件保存到服务器。

<?php

$base_url = "http://www.someurl.com/";
$sufix = ".jpg";
$id_start= "Name Numberstart"; //Picture 1 
$id_end = "Name Numberend"; // Picture 235
$path_to_save = "filer/";

foreach(range($id_start, $id_end) as $id) {
    file_put_contents($path_to_save.$id.$sufix, file_get_contents($base_url.$id.$sufix));
}

?>

如果我只使用id和数字等1-20或50 - 60等等,那么脚本就能完美运行。但是当我在前面和白色空间有一个名字时,它似乎不起作用。它只保存1个文件并停止。

1 个答案:

答案 0 :(得分:0)

根据php.net对range

的描述
  

字符序列值的长度限制为一。如果输入的长度大于1,则仅使用第一个字符。

我认为这意味着

range("Name Numberstart", "Name Numbersend") == array("N");

如果我们以交互方式运行php,则会确认:

php > $var = range("Name Numberstart", "Name Numbersend");
php > var_dump($var);
array(1) {
  [0]=>
  string(1) "N"
}

所以基本上,你实际上是将第一个单词的第一个字符的范围变为第二个单词的第一个字符。如果我们将第二个单词改为&#34;漂亮&#34;,我们得到:

php > var_dump(range("Name Numberstart", "Pretty Numbersend"));
array(3) {
  [0]=>
  string(1) "N"
  [1]=>
  string(1) "O"
  [2]=>
  string(1) "P"
}