1 вариант быстрей в 10 раз:)
<?php $TS = microtime(1); for ($i=0; $i<1000000; $i++) { if(strpos($_SERVER["REQUEST_URI"],"/test")===0){} /// 1 вариант if( mb_substr($_SERVER["REQUEST_URI"], 1, 4, 'utf-8') == 'test' ){} ///2 вариант } echo (microtime(1)-$TS); ?>
Было проведено по 10 заездов для каждого варианта
1 вариант: минимальное 0.92с, среднее 0.95с , максимальное 1 раз 1.1 секунды
2 вариант: минимальное 10.01, среднее 10.63, максимальное 10.8
Но, когда вместо mb_substr, был заюзан обычный substr разница практически пропала(по среднему времени 0.05сек), а когда в 1 варианте использовал mb_strpos время выполнения также стало в районе 10 секунд.
Подойдет любой вариант. Главное знайте, что если у Вас будет сайт на ЮТФе и в РЕКВЕСТ_УРИ будет кириллица, то придется юзать mb_* функции, так как ПХП на уровне ядра не поддерживает ЮТФ:(
Ложила мозила на Ваши антиличи:):):)
Вот код, который я адаптировал на локалке
Антилич работает как надо.
В папку тест закинул 2 файла(индекс.пхп и хтаццесс) как там написано.
у себя на сайте(он в корне лежит) делаю вставку картинки dino.jpg из той папки.
<img src="/test/dino.jpg">
Картинка показывается, все гуд.
Открываю по прямой ссылке localhost/test/dino.jpg - дает отлуп, как и положено.
Но весь прикол в том, что тыкаю правой кнопкой по изображению и могу его сохранить у себя на компе:)
Щас попробую хром.
Updated: хром делает тоже самое.
Пока можно сделать вывод: мозила дружественный браузер для рипперов😂
И хром тоже:)
Не, не! Именно 95%. Остальные 5% это когда ты советуешь юзать WP:)
Друпал не юзал, не знаю. Вы можете код на ПХП, или просто на псевдо-коде реализовать алгоритм этой защиты? Мне реально интересно глянуть.
А как он будет ее отдавать? Приведите хоть 1 рабочий пример, интересно было бы глянуть.
if ( mb_substr($_SERVER["REQUEST_URI"], 1, 8, 'utf-8') == 'stranica' )
{
//your code
}
Если кодировка отличная от utf-8, то значение utf-8 измените.
Выбирайте любой вариант:)
Вопрос к советчикам DLE: а почему бы не WordPress?
В 95% случаев советы типа "бери то" объясняются тем, что советчик сам юзает это, и ни разу не юзал другое.
Никакого предвзятого отношения к авторам предыдущих постов, только объективная оценка тем в этом разделе форума за последние 6 месяцев:)
Скорее всего так:
php_value output_buffering 4096
4096 - размер буфера в байтах.
Либо
php_flag output_buffering On
Не проверял, работоспособность не гарантирую. Чисто телепатически:)
Потестил на локалке.
1 вариант точно работает.
2 вариант ставит размер буфера 1 байт, так как On преобразуется в 1 (Булева алгебра).
Если хостинг не дает управлять Вам такими директивами, то есть 2 выхода:
1) Попросить разрешить это делать
2) Сделать в ПХП через функции ob_*
PS. а ПХП то у Вас работает как модуль хоть? Если как CGI, то до фанаря .htaccess'у Ваши пхп_флаги и пхп_значения.
Узнать это можно благодаря "нашей" Библии:)
Вот топик про борьбу с дублями, почитайте, там все достаточно информативно.
А где первая?
Код в студию.
Если телепатить: 1 - ютф-8 с БОМом, 2 - отдача контента начата до отправки локатиона.
Дело это чекаем написанием строки в самое начало файла:
error_reporting(E_ALL);