powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Имя файла хранится в переменной. При передаче этой переменной file_exists в ответе FALSE.
4 сообщений из 4, страница 1 из 1
Имя файла хранится в переменной. При передаче этой переменной file_exists в ответе FALSE.
    #39817497
stardg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, подскажите плз. В какую вообще сторону можно рыть в этой дебильнейшей ситуации.

В корне сайта создана директория и туда складываются html файлы:
Код: php
1.
/serv/www/site/insta_widgets



Мне нужно читать их содержимое.

Пишу скрипт (там всё выше не интересно) вот ключевой момент:
Код: php
1.
2.
 $insta_widget_file=  $insta_widgets_path.$insta_widget_file;
 echo($insta_widget_file."=".(int)file_exists($insta_widget_file)."<br>");



Результат вывода на экран:
Код: plaintext
1.
2.
3.
/serv/www/site/insta_widgets/20190524_083904_insta.html=0
/serv/www/site/insta_widgets/20190523_045217_insta.html=0
/serv/www/site/insta_widgets/20190523_045238_insta.html=0

Файлы реально существуют. Пути я передаю полные.
Открываю консоль, делаю:
Код: php
1.
vi /serv/www/site/insta_widgets/20190524_083904_insta.html



Вижу в терминале его содержимое.
Но PHP-функции для работы с ФС не видят его никакими богами!

Если в скрипте написать так:
Код: php
1.
 echo($insta_widget_file."=".(int)file_exists('/serv/www/site/insta_widgets/20190524_083904_insta.html')."<br>");



Всё отлично! file_exists говорит TRUE.

Переменную типизировал (string) - безрезультатно.
clearstatcache() перед проверкой выполнял - безрезультатно.

Я отказываюсь это понимать! Помогите кто сможет, хотя бы в направлении куда посмотреть.


P.S. Пишу всё это для Yii1, но врядли она имеет отношение к этому кретинизму.
...
Рейтинг: 0 / 0
Имя файла хранится в переменной. При передаче этой переменной file_exists в ответе FALSE.
    #39817537
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только одно предположение, что в $insta_widgets_path или $insta_widget_file затесался какой-то непечатный символ и, таким образом, имя файла не соответствует существующему. Попробуйте вывести через var_dump() и сравнить количество байт в значении переменной с длиной реального пути в ФС.

Для примеру, в данном случае 55 байт в строке и 55 видимых символов, которые можно пересчитать вручную :
Код: php
1.
2.
$ php -r "var_dump('/serv/www/site/insta_widgets/20190524_083904_insta.html');"
string(55) "/serv/www/site/insta_widgets/20190524_083904_insta.html"
...
Рейтинг: 0 / 0
Имя файла хранится в переменной. При передаче этой переменной file_exists в ответе FALSE.
    #39817558
stardg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleТолько одно предположение, что в $insta_widgets_path или $insta_widget_file затесался какой-то непечатный символ и, таким образом, имя файла не соответствует существующему. Попробуйте вывести через var_dump() и сравнить количество байт в значении переменной с длиной реального пути в ФС.

Для примеру, в данном случае 55 байт в строке и 55 видимых символов, которые можно пересчитать вручную :
Код: php
1.
2.
$ php -r "var_dump('/serv/www/site/insta_widgets/20190524_083904_insta.html');"
string(55) "/serv/www/site/insta_widgets/20190524_083904_insta.html"



Вот ты молодец! Сходу диагноз! Респектище!

В строке 60 а в переменной у меня 64.

Как бы их теперь выявить?
...
Рейтинг: 0 / 0
Имя файла хранится в переменной. При передаче этой переменной file_exists в ответе FALSE.
    #39817570
stardg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага! всё уже придумано до нас!

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
function stripWhitespaces($string) {
  $old_string = $string;
  $string = strip_tags($string);
  $string = preg_replace('/([^\pL\pN\pP\pS\pZ])|([\xC2\xA0])/u', ' ', $string);
  $string = str_replace('  ',' ', $string);
  $string = trim($string);
  
  if ($string === $old_string) {
    return $string;
  } else {
    return stripWhitespaces($string); 
  }  
}



Всем спасибо! Всё работает!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Имя файла хранится в переменной. При передаче этой переменной file_exists в ответе FALSE.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]