За последние 24 часа нас посетили 20413 программистов и 1253 робота. Сейчас ищут 653 программиста ...

Как найти нужный файл и вывести из него значения?

Тема в разделе "PHP для новичков", создана пользователем Kuzma92, 27 мар 2024.

  1. Kuzma92

    Kuzma92 Новичок

    С нами с:
    6 мар 2024
    Сообщения:
    13
    Симпатии:
    0
    Здравствуйте уважаемые специалисты.

    На странице site.ru/us/page.php у меня есть переменная $file[8], которая выводит id пользователя - это число, состоящее из десяти цифр (1234567890).

    В папке site.ru/us/db/us/ лежат файлы (не txt, а просто файлы без расширения) с данными пользователей, имеют такой вид:
    site.ru/us/db/us/1234567890
    site.ru/us/db/us/2564895456
    site.ru/us/db/us/2548566237
    и т.д.

    Имена файлов - это id пользователей. Вопрос такой: как по id, который выводит переменная $file[8], найти нужный файл в этой папке с именем, совпадающим с этим id, чтобы на странице page.php из найденного файла можно было выводить значения (строки) с помощью переменных $user[1], $user[2], $user[3] и т.д.?

    Подскажите, пожалуйста, как это сделать правильно?
     
  2. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    866
    Симпатии:
    134
    @Kuzma92, либо книгу купи, либо найди вменяемого учителя (хоть онлайн, хоть вживую), либо может оно тебе не надо?
     
    Kuzma92 нравится это.
  3. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    260
    Симпатии:
    51
    Адрес:
    Бавария, Германия
    Добрый день!
    Всё, что Вы называете "переменными" на самом деле - элементы массива.
    Если Вы знаете имя файла, то его не нужно искать. Просто читайте его фкнкцией file.
    Удачи!
     
    #3 Vladimir Kheifets, 27 мар 2024
    Последнее редактирование: 27 мар 2024
    Kuzma92 нравится это.
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    Если имя файла приходит от пользователя, его прежде нужно тщательно проверить. Например, Web-сервер может пропустить что-то вроде "../../системный-файл" ;)
    --- Добавлено ---
    Как вариант можно читать оглавление нужной папки, формируя «белый список» для дальнейшей проверки по нему, но этот далеко не лучший способ в данном случае. Числовой id можно проверить по регулярке вроде ^[1-9]\\d{0,9}$ (двойной бэкслеш предназначен для PHP-строки), а потом проверить существование соотв. файла.
     
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    Как я понял, тебе «страница page.php» не нужна (404), а нужны страницы вроде page.php?id=1234567890, хотя на page.php можно разместить список пользователей (со ссылками).

    И вообще учись не смешивать файлы данных и скрипты. Общий начальный фрагмент /us/ уже плохо. Заведи в корне сайта секретную папку для файлов данных или, что еще лучше, вообще убери ее из корня.
    --- Добавлено ---
    А если следовать современной практике, то и скриптов в корне (во всей ветке, включая более глубокие уровни) быть не должно ;)
     
  6. JohnWarner

    JohnWarner Новичок

    С нами с:
    16 ноя 2022
    Сообщения:
    11
    Симпатии:
    0
    Я не профи, а просто провожу свободное время за тем, что немного пытаюсь изучать пхп. Зарабатываю я иначе.
    Сделал пару разных экспериментальных сайтиков.
    Пользователю Кузьме могу посоветовать изучить базы данных - обязательно! - и книжку.
    Могу порекомендовать свою компиляцию (я не автор, я только в кучку собрал) в формате справки Windows.
    HTML_PHP_MYSQL.chm.zip
    Сам пользуюсь.