Нужен скрипт выбора нужной строки из TXT по параметру заданному в URL

  • Автор темы
  • Модер.
  • #21
теперь вместо
$url_form_file
в месте вывода просто выводится две точки с пробелами: src=" . . "
путь пытался к файлу всяко разно написать и от корня сайта и что в соседней папке, но все равно выводятся только точки :(
 
Эту строку замени там кавычки нужно было указать "":
Код:
if( $config['allow_alt_url'] )   $value3[] = "<a class=\"thumbnail\" href=\"" . $config['http_home_url'] . "".$preg_safe_name."/" . urlencode( $value2 ) . "/\">" . $value2 . "<span>" . $value2 . "<img src=\" . $url_form_file . \" width=\"100\"/></span></a>";
На:
Код:
if( $config['allow_alt_url'] )   $value3[] = "<a class=\"thumbnail\" href=\"" . $config['http_home_url'] . "".$preg_safe_name."/" . urlencode( $value2 ) . "/\">" . $value2 . "<span>" . $value2 . "<img src=\"" . $url_form_file . "\" width=\"100\"/></span></a>";
 
  • Автор темы
  • Модер.
  • #23
Эту строку замени
ни в какую не хотел показывать нужную инфу, толи файл TXT не мог найти толи как то не правильно путь указывал.
В итоге указал
Код:
        if($myFile = fopen("" . $config['http_home_url'] . "/engine/modules/***/text.txt", "r")){
и всё заработало!!!:party::yahoo:

Ещё вопросик возник, пытался добавить условие но что не работает, видимо что то не дума пишу:
Код:
                        //Второе добавление
                        foreach ($lines as $value_num) {
                            $str_num = explode('|', $value_num);
                            if($str_num[0] == $value2){
                                $url_form_file = $str_num[1];
                            }
                else $url_form_file = "/uploads/photo_none.png";
                        }
                        //Конец
Куда правильней добавить else $url_form_file чтобы если не находит в файле соответствия - выводилась нужная картинка?
 
Последнее редактирование:
  • Автор темы
  • Модер.
  • #24
Что может быть такое? Вчера код выше что приводил выводил photo_none.png и иногда брал картинку из файла text.txt, решил добавить сегодня 200 строк в файл - и всё вообще перестало работать, даже заплатка ни в какую photo_none.png не хочет показываться, и поле src="" вообще пустое. Вернул текстовый файл в прежнее состояние, но ничего не изменилось, т.е. так ничего и не выводится теперь(((

Сделал все изменения в файле что были по теме от исходного кода - ничего не помогает. Где косяк нужно искать чтобы работал код? :confused:
 
Последнее редактирование:
1. Не туда вставил. У тебя перебирается множество значение и условие else говорит, что тогда множество значений кроме одного может быть условием. Если первое не совпало с value2, то оно идет в else. Нужно else вытащить из цикла.
Вот правильный код:
Код:
            foreach ($lines as $value_num) {
                $str_num = explode('|', $value_num);
                if($str_num[0] == $value2){
                    $url_form_file = trim($str_num[1]);
                }
            }
            if(!$url_form_file){
                $url_form_file = "/uploads/photo_none.png";
            }
 
  • Автор темы
  • Модер.
  • #26
Вот правильный код:
как узнать читается ли вообще файл TXT или нет? Постоянно выдавать стал только заглушку, как будто данные из файла не читает или не может найти путь к нему. Файл текстовый лежит в папке как писал Для просмотра ссылки Войди или Зарегистрируйся но как такое может быть что вчера он читался а сегодня уже нет? :facepalm:

UPDATE С путем все таки разобрался, указал путь к файлу прямой с сервера начиная с /var/www/ и теперь всё работает :)
Только вместо заглушки выводится последняя картинка которая взята из массива(((

Точнее если нужного вхождения нет в файле - цепляется вместо заглушки последняя картинка, а всех нужных значений в файле пока нет да и не факт что когда-то будет ))) А заглушка выводится когда нужная строка в файле есть, но к ней нет картинки.
 
Последнее редактирование:
То есть нужно еще проверять на наличие файла. Если файла нет, то ставить заглушку?
 
  • Автор темы
  • Модер.
  • #28
То есть нужно еще проверять на наличие файла. Если файла нет, то ставить заглушку?
нет, в файле просто не все данные сразу будут, сам файл есть, но некоторых вхождений нет, и вместо них желательно чтоб заглушка была :glob:
 
Попробуй так проверяет, есть ли изображение. Если нет, то выводит заглушку. Только путь к изображениям укажи.
Код:
            foreach ($lines as $value_num) {
                $str_num = explode('|', $value_num);
                if($str_num[0] == $value2){
                    $url_form_file = trim($str_num[1]);
                    //Проверка файла
                    $filename = "/uploads/".$url_form_file;
                    if (!file_exists($filename))
                        $url_form_file = "/uploads/photo_none.png";
                    //Конец проверки файла
                }
            }
            //Если вхождений не нашлось, то выводит последнюю картинку. Или можно любую картинку вставить. 
            if(!$url_form_file){
                $str_num_end = explode("|", $lines[count($lines)-1]);
                $url_form_file = "/uploads/".$str_num_end[1];
            }
 
Последнее редактирование:
Зачем так извращаться ?
PHP:
$str_num_end = explode("|", $lines[count($lines)-1]);
Когда есть
PHP:
$str_num_end = explode("|", end($lines));
 
Назад
Сверху