PHP JSON Возвращает строковый вопрос - PullRequest
3 голосов
/ 15 сентября 2009

Я не знаю PHP, поэтому другой разработчик помог мне с этим кодом. Я пытаюсь вернуть имена всех файлов в папке на моем сервере. Затем они передаются в мое приложение для iPhone, которое использует данные. Тем не менее, у меня есть 160 файлов в папке и строка JSON возвращает только 85. Что-то не так с этим кодом:

 <?php
$path = 'Accepted/';

# find all files with extension jpg, jpeg, png 
# note: will not descend into sub directorates
$files = glob("{$path}/{*.jpg,*.jpeg,*.png}", GLOB_BRACE);

// output to json
echo json_encode($files);

?>

Ответы [ 2 ]

2 голосов
/ 15 сентября 2009

Если это в UNIX-подобной системе, ваши файлы чувствительны к регистру. Возможно, * .jpg будет соответствовать, тогда как * .JPG или * .jpG - нет.

Следующая функция просматривает все файлы в $ path и возвращает только те, которые соответствуют вашим критериям (без учета регистра):

<?php
$path = 'Accepted/';
$matching_files = get_files($path);
echo json_encode($matching_files);

function get_files($path) {
    $out = Array();
    $files = scandir($path); // get a list of all files in the directory
    foreach($files as $file) {
         if (preg_match('/\.(jpg|jpeg|png)$/i',$file)) {
             // $file ends with .jpg or .jpeg or .png, case insensitive
             $out[] = $path . $file;
         }
    }
    return $out;
}
?>
2 голосов
/ 15 сентября 2009

Нет причин, по которым этот код не должен работать. Однако ваша переменная $path не должна заканчиваться косой чертой (как у вас в вызове glob).

На что посмотреть:

  • Вы уверены, что все файлы являются файлами .jpg, .jpeg или .png?
  • Вы уверены, что некоторые файлы не являются .JPG, .JPEG или .PNG (регистр имеет значение в Unix / Linux)
  • Попробуйте print_r в переменной $files. Он должен перечислить все совпадающие файлы. Посмотрите, сможете ли вы идентифицировать файлы, которых нет в списке.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...