Я попытался создать скрипт, который мог бы сохранить все файлы с веб-страницы с шаблоном по имени на сервере.
<?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 файл и останавливается.
Согласно описанию php.net спектр:
Значения последовательности символов ограничены длиной один. Если введена длина больше единицы, используется только первый символ.
Я понимаю, что это означает, что
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"}
Таким образом, вы получаете диапазон от первого символа первого слова до первого символа второго слова. Если мы изменим второе слово на «Pretty», мы получим:
php > var_dump(range("Name Numberstart", "Pretty Numbersend"));
array(3) {
[0]=>
string(1) "N"[1]=>
string(1) "O"[2]=>
string(1) "P"}
Других решений пока нет …