miketomlin

Рейтинг
235
Регистрация
04.12.2013

3) действительно не надо;

6) не нужно (точнее нужно, только не на лэндинге).

Да, первую директиву оставьте, а вторую уберите – у вас редирект (абс. адрес используется), поэтому она без надобности.

---------- Добавлено 02.09.2016 в 12:06 ----------

P.S. В условии в маске нужно экранировать точки. Есть простой универсальный набор директив для редиректа с www на без www.

Кадры, формируемые нашим софтом, выглядят так:


--граница
Content-Transfer-Encoding: base64
Content-Type: application/zip; name="имя"
Content-Disposition: attachment; filename="имя"

код

В самом конце на отдельной строке общий терминатор: --граница--

---------- Добавлено 01.09.2016 в 15:02 ----------

Эээ... zip – это потому что в образцовом дампе были архивные файлы.

---------- Добавлено 01.09.2016 в 15:05 ----------

svv, вы выдачу общего терминатора перенесите за пределы цикла.

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

Я вам выше писал про юники. Сервер БД не даст создать дублирующиеся значения. С первичным ключом то же самое.

---------- Добавлено 29.08.2016 в 17:02 ----------

В добавок, чтобы с этим было меньше проблем, разделите логику добавления поста на два этапа: собственно создание с указанием слага (или имени, по котором слаг будет формироваться автоматом) и редактирование, т.е. заполнение всех прочих полей.

---------- Добавлено 29.08.2016 в 17:03 ----------

Естественно, при успешном создании записи переход на форму редактирования должен происходить автоматически (редирект).

barabash:
Решил убрать id из url и добавить проверку url перед добавление в БД.

Если «url» будет добавлять админ, а не рядовой пользователь сайта, в этом нет особой необходимости. Вы лучше добавьте проверку на наличие исключительно допустимых символов в url'е/пути, перед тем как по нему (или по его отдельной части) делать запрос к БД.

miketomlin:
P.S. Вместо ob_get_clean/echo можно использовать просто ob_end_flush.

Или вообще не использовать буферизацию :)

Что касается исходного вопроса, то с помощью eval делается примерно так:


eval('ob_start(); ?>'.trim($x).'<?php $x=ob_get_clean();');
echo $x;


---------- Добавлено 28.08.2016 в 23:08 ----------

Alex Klo, вопрос ТС-а внимательно прочитайте.

---------- Добавлено 28.08.2016 в 23:12 ----------

P.S. Вместо ob_get_clean/echo можно использовать просто ob_end_flush.

Joober, если строк много, думаю, shuffle будет не слишком эффективна.

Если php-вставка реально во всех строках повторяется, можно подобрать более эффективное и менее ресурсоемкое решение. Если еще и в ссылках реально такое единообразие имеется, вам достаточно в файле только список id-шников хранить, например:


1
2
3
...

Я в курсе, зачем иногда добавляют числовой id к слагу в адресе. Однако уверен, что блогу ТС-а до масштабов уровня Авито и иже с ними еще оч. далеко.

---------- Добавлено 28.08.2016 в 22:20 ----------

Там, кстати, есть еще одна причина. Когда слаг меняется, а id-шник остается, можно по нему делать редирект всех старых адресов на новый.

---------- Добавлено 28.08.2016 в 22:22 ----------

ТС-у подсказка: естественно, поле слагов нужно делать как минимум юником.

---------- Добавлено 28.08.2016 в 22:34 ----------

На Авито, кстати, имена объявлений могут совпадать. Числовой id-шник помимо всего прочего обеспечивает уникальность адресов.

Всего: 2534