|
|
|
| Приветствую собратьев по оружию:) Есть вот такой скрипт:
<?php
error_reporting(E_ALL);
print_r(glob("files/*.{jpg,jpeg,png,gif}",GLOB_BRACE));
echo '<br>';
print_r(glob("files/*",GLOB_ONLYDIR));
?>
|
(читает сначала картинки, потом папки в директории files).
Директория пуста, и на сервере, и на локальном компе. НО!
Домашний комп выводит
Array()<br>Array(),
а сервер только <br>!
Сделал так:
<?php
error_reporting(E_ALL);
echo sizeof(glob("files/*.{jpg,jpeg,png,gif}",GLOB_BRACE));
echo '<br>';
echo sizeof(glob("files/*",GLOB_ONLYDIR));
?>
|
(посмотреть размер массивов),
Домашний комп выводит
0
0
а сервер
1
1
(!!!) и это при том, что директория пуста, а print_r не показал ничего!
Создаю папку 111. Запускаю скрипт №1
Денвер:
Array ( )
Array ( [0] => files/1111 )
Сервер:
Array ( [0] => files/1111 )
казалось бы все ок. но скрипт №2 дает результаты:
Денвер:
0
1
Сервер:
1
1
Дальнейшие тесты показали: sizeof(glob()); всегда возвращает число больше 0
В чем дело? почему считает так? | |
|
|
|
|
|
|
|
для: amigo62
(01.09.2008 в 11:57)
| | попробуйте вместо sizeof написать count
а вместо print_r соответственно var_dump | |
|
|
|
|
|
|
|
для: Trianon
(01.09.2008 в 12:07)
| | count так же возвращает 1 / 1 при отсутствии обьектов, а var_dump - bool(false) / bool(false) | |
|
|
|
|
|
|
|
для: amigo62
(01.09.2008 в 13:06)
| | помоему всё просто ... стоит только повнимательнее прочитать описание используемых функций
Описание
int count ( mixed var)
...
Если var это не массив, будет возвращено 1.
косяк в том что вы пытаетесь посчитать не массив ....
по поводу того что print_r печатает 1 ... скорее всего нужно просто писать print_r а не echo print_r()
:-) | |
|
|
|
|
|
|
|
для: amigo62
(01.09.2008 в 13:06)
| | ЗЫ:
функция glob скорее всего возврощает FALSE (заметим,это не массив) .. отсюда и проблема | |
|
|
|
|
|
|
|
для: waptanet
(01.09.2008 в 13:53)
| | >по поводу того что print_r печатает 1 ... скорее всего нужно просто писать print_r а не echo print_r()
читайте внимательнее ;)
>Описание
int count ( mixed var)
...
Если var это не массив, будет возвращено 1.
косяк в том что вы пытаетесь посчитать не массив ....
>хм. странно. возвращает 0 везде, кроме нового сервера... Это какая версия РНР подразумевается? | |
|
|
|
|
|
|
|
|
для: waptanet
(01.09.2008 в 13:53)
| | Спасибо, что обратили внимание на тип переменной.
<?
$b=glob("files/*",GLOB_BRACE);
if($b==false)
$b=array();
echo count($b);
?>
|
работает!! | |
|
|
|