Милованов Ю.С

Милованов Ю.С
Рейтинг
196
Регистрация
24.01.2008
Должность
PROgrammer
Интересы
Автомобили, рыбалка, охота
ProTeg:
а какой лучше? :)

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_* функции, так как ПХП на уровне ядра не поддерживает ЮТФ:(

SeVlad:
Гуглить "антилич".

Ложила мозила на Ваши антиличи:):):)

Вот код, который я адаптировал на локалке

Антилич работает как надо.

В папку тест закинул 2 файла(индекс.пхп и хтаццесс) как там написано.

у себя на сайте(он в корне лежит) делаю вставку картинки dino.jpg из той папки.

<img src="/test/dino.jpg">

Картинка показывается, все гуд.

Открываю по прямой ссылке localhost/test/dino.jpg - дает отлуп, как и положено.

Но весь прикол в том, что тыкаю правой кнопкой по изображению и могу его сохранить у себя на компе:)

Щас попробую хром.

Updated: хром делает тоже самое.

Пока можно сделать вывод: мозила дружественный браузер для рипперов😂

И хром тоже:)

SeVlad:
150%

Не, не! Именно 95%. Остальные 5% это когда ты советуешь юзать WP:)

Pavel_:
В Друпале - это вообще штатная фишка
правда нафик не нужная... ))

Друпал не юзал, не знаю. Вы можете код на ПХП, или просто на псевдо-коде реализовать алгоритм этой защиты? Мне реально интересно глянуть.

Pavel_:
В чём проблема-то?
Пущай движок и отдаёть вашу картинку браузеру, он для этого вроде и нужон. Стырить её - понятно что элементарно, но по прямой ссылке можно бааальшие сиськи повесить (мегабайт этак на 20-30), об этом повествование там было... ))

А как он будет ее отдавать? Приведите хоть 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'у Ваши пхп_флаги и пхп_значения.

Узнать это можно благодаря "нашей" Библии:)

Вот топик про борьбу с дублями, почитайте, там все достаточно информативно.

kvins:
Если я напишу код
header("Location: rubi.php");

после второй открывающей php скобки <?php то тогда никакого редиректа не происходит , как это исправить ?

И вообще почему так

А где первая?

Код в студию.

Если телепатить: 1 - ютф-8 с БОМом, 2 - отдача контента начата до отправки локатиона.

Дело это чекаем написанием строки в самое начало файла:


error_reporting(E_ALL);
Всего: 1956