Получение и использование данных из txt файла

12
S
На сайте с 30.09.2016
Offline
469
#11
miketomlin:
Это без разницы. Web-сервер может спокойно пропустить адрес с компонентами вроде /../

Съесть-то он съест, да кто ж ему даст (С). Надо же эту строку правильно в код вписать.

---------- Добавлено 15.10.2016 в 14:57 ----------

birseo:
Не работает такой вариант
И тем не менее, именно так правильно. Потому что без этого Вы пытаетесь воткнуть в адрес перенос строки и, возможно, прочий мусор.

Тут вариантов нет, задан неправильный адрес - надо только причину выяснить, что на месте делается за несколько минут.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
M
На сайте с 04.12.2013
Offline
223
#12

Логика чтения конечных файлов (ufa.txt и т.п.) без использования отдельного файла со списком слагов городов:


if (realpath($fullpath=PATH.$px.'.txt')===strtr($fullpath,'/',DIRECTORY_SEPARATOR)&&is_file($fullpath))
$content=file_get_contents($fullpath);
else
notfound();

$px – путь из адреса с обрезанными по краям слешами.

PATH – база, в которой находится каталог foto – наличие компонента foto в пути из адреса нужно проверять отдельно.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
S
На сайте с 30.09.2016
Offline
469
#13

Не пойдёть. Не реализован случайный выбор.

M
На сайте с 04.12.2013
Offline
223
#14

Тут можно подсмотреть проверку. Но в целом вы правы. Сбила с толку эта тема:

http://www.cyberforum.ru/php-beginners/thread1826483.html

(там ТС пишет, что рандом уже не нужен)

Тогда вообще все элементарно. Вот компиляция всего того, что написано в теме:


$txt=file(PATH.'gorod.txt',FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
$content=file_get_contents(PATH.$txt[array_rand($txt)].'.txt');
echo $content;

Вместо file_get_contents/echo можно использовать readfile.

S
На сайте с 30.09.2016
Offline
469
#15

Короче, я проверил у себя

<?php

$txt = file('gorod.txt');
$str = $txt[array_rand($txt)];
$strg = file_get_contents('foto/'.trim($str).'/text.txt');
echo str_replace("\n", '<br />', $strg);

Всё работает. Теперь сижу, жду🍿

Готов оплатить помощь.
когда премию принесут:):):)
LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#16
trim($str)

Лишнее, сделайте как я написал, в функции file уже всё предусмотрено.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
S
На сайте с 30.09.2016
Offline
469
#17
LEOnidUKG:
Лишнее, сделайте как я написал, в функции file уже всё предусмотрено.

А вот и нифига. Вы же не знаете, каким образом ТС формирует или правит свой текстовый файл. Нашлёпает кучу пробелов, которых визуально не обнаружишь - и приехали. А trim их уберёт - причём, и в начале, и в конце. И код короче, опять же.

W
На сайте с 09.04.2013
Offline
46
#18

Как вариант:


<?php
$gorod = new SplFileObject(__DIR__ .DIRECTORY_SEPARATOR.'gorod.txt');
$gorod->setFlags(SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE);
$gorod->seek(mt_rand(0,iterator_count($gorod)-1));
echo file_get_contents(__DIR__.'/foto/'.$gorod->current().'/text.txt');
[Удален]
#19

Всем спасибо за помощь!

Заработал такой код:


$txt = file('gorod.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$str = $txt[ array_rand($txt) ];
unset($txt);
echo $str;
$txtg = implode (' ',file('foto/'.$str.'/text.txt'));
echo $txtg;

Теперь необходимо еще выбрать случайным образом 4-10 (количество тоже должно рандомом меняться) фотографий из папки foto/'.$str.'/img/

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий