Как запретить вывод блока если он пуст

S
На сайте с 13.11.2012
Offline
72
#61

kostyanet, спасибо, ваш .htaccess мне помог, я другой делал, после чего он файл становился недоступным и для сервера (сайта).

Order Deny,Allow

Deny from all

Встал вопрос оптимизации и возможного перехода на базу данных, сервер стал ложиться :)

Процессор 2x2000МГц

Память 1024МБ

OS centos6_php_selector-x86_64

Из-за чего я только догадываюсь.

Вот появился вопрос, если я перейду на базу данных, нагрузка на сервер упадет?

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

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

K
На сайте с 03.06.2015
Offline
45
#62
Smirnof:
после чего он файл становился недоступным и для сервера (сайта)

Запросы идут на адрес (через DNS провайдера), там их встречает сервер, которому вы даете инструкции в этих htaccess'ах и, если доступ к запрашиваемому ресурсу запрещен, сервер так и ответит, типа Forbidden. Если разрешен - телега покатится дальше и докатится до запуска php и затем до открытия файла средствами php, которому никакие htaccess'ы уже не стучат вообще. Так все и работает. PHP - это не сервер, а одна из серверных программ и для нее все ресурсы сервера - локальные. Конечно и для php можно задавать права доступа на уровне файловой системы сервера.

---------- Добавлено 05.08.2015 в 06:22 ----------

Smirnof:
Вот появился вопрос, если я перейду на базу данных, нагрузка на сервер упадет?

Скорее всего вы не отключали бд-шные расширения php такие как mysql, mysqli, pdo (обычно отключено) и стало быть они ресурсы жрут, а вы ими не пользуетесь. Начнете пользоваться - все станет просто по-другому. Нагрузка зависит от методов и объемов.

Smirnof:
файл YouTube класс останется, именно он запрашивает все данные после чего парсит результат с YouTube

А если ютуба начнет лагать?

MYSQL PHP JS HTML CSS SEO TXT США СССР
S
На сайте с 13.11.2012
Offline
72
#63
А если ютуба начнет лагать?

это сарказм? :)

Если начнет, значит все, приехали...

K
На сайте с 03.06.2015
Offline
45
#64

Это был вопрос, правильный ответ: cron'у лаги не мешают.

S
На сайте с 13.11.2012
Offline
72
#65

Честно говоря не понял при чем тут крон вообще, насколько я знаю, крон выполняет задания по расписанию, при чем здесь ютуб апи?

K
На сайте с 03.06.2015
Offline
45
#66

По расписанию и сколько надо. Потом юзерам выдается что засосано с лагами или без, но уже без лагов. Вашего замысла в целом я не знаю, сайта не видел, но если ваш скрипт с сервера просит другой сервер что-то выдать, то очень даже запросто может не хватить отпущенного в настройках времени на выполнение запроса юзера - через который все идет. В общем не важно, я еще в прошлый раз интересовался зачем вы переписываете вручную все элементы массива $_POST - можно узнать?

S
На сайте с 13.11.2012
Offline
72
#67
$store = array(
'zerocatename' =>$_POST ["zerocatename"],
'zerocatesearch' =>$_POST ["zerocatesearch"],
'zerocatevideos' =>$_POST ["zerocatevideos"],
'zeronumber' =>$_POST ["zeronumber"],

я не знаю как по другому сделать.

K
На сайте с 03.06.2015
Offline
45
#68

Ладно, а вот так разве нельзя?


$store = $_POST;

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

S
На сайте с 13.11.2012
Offline
72
#69

Прикольно :)

Я 150 строк 2 дня правил...

Спасибо! Оказалось, что я делал это зря

K
На сайте с 03.06.2015
Offline
45
#70

Конечно прикольно, это вообще целый сайт есть для таких приколов, если вы не в курсе - govnokod.ru Потому что нельзя строить доктрины в программировании, будете по 100500 раз все переписывать, стопудово. Надо смотреть как люди делают, искать лучшие решения и делать еще лучше на их основе. Так все и делают кстати.

Ну вот, присвоение переменной значения массива обеспечивает простейшее наследование. Например нам нужны в куче элементы двух массивов и один из элементов из кучи не нужен:


$foo = array('bar'=>1,'baz'=>2);
$store = $_POST + $foo; // краткая форма array_merge()
unset($store['zerocatename']);

Теперь что такое $_POST? Это данные из браузера, с формы, да? Стало быть массив у вас уже и так есть, по которому форму нарисовали, а от поста вам только данные нужны, при чем отсутствие данных тоже дает данные. Значит надо переписать данные, заодно проверяя их правильность - что и называется валидация.


foreach($form_array as &$field)
validate($field); // $_POST суперглобальный, его не надо передавать аргументом

Таким образом переписали все данные из поста в модель формы - $form_array, при этом те данные которые не пришли оставили дефолтные данные, например null и можно принимать решение - допустимо это или нет. А как это узнать? Надо записать в модель формы не простой массив, а золотой, то есть со всем барахлом. Например


$form_array = array(
'name'=>array('title'=>'Ваше ФИО', 'required'=>3, 'type'=>'text'),
'email'=>array('title'=>'Е-почта', 'required'=>5, 'type'=>'email'),
'image'=>array('title'=>'Фотка', 'required'=>0, 'type'=>'file'),
);

Тут все в куче - и данные модели и данные представления, например тип поля - это представление. Поэтому обычно делают не массив, а функцию (метод) который на этапе моделирования возвращает только данные модели, а на рендере другой метод обогащает модель данными для представления. Ну это уже слишком далекая перспектива для вас, но знать о ней полезно :)

---------- Добавлено 05.08.2015 в 22:12 ----------

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


$html=array();
foreach($form_array as $name => $op)
$html[]='<input name="'.$name.'" type="'.$op['type'].'" value="'.$op['value'].'"/>';
echo join($html);

value добавляется точно так же, как элемент, и его можно брать из поста, но не так чтобы напрямую, поскольку в посте такого элемента может и не быть, и не все инпуты обозначают свое значение текстом, но суть именно такова - превратить модель формы в хтмл-форму не бином ньютона.

---------- Добавлено 05.08.2015 в 22:14 ----------

Если ваш пост приходит не с формы от юзера, а от апи, то представление не требуется, конечно. Но проверять все равно надо.

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