Отправляет email-рассылки с помощью сервиса Sendsay

Все о PHP и даже больше

  Все выпуски  

Все о PHP и даже больше # 25


Информационный Канал Subscribe.Ru

Все о PHP и даже больше...

.:: Путь от начинающего до эксперта ::.

# 25
4/2004


6 ноября 2004г.

 
Проект сайта: GreatWeb.Ru
Ведущий рассылки: Бабушкин Евгений

Всем привет!

:.:: Наши проекты:


GreatWeb.Ru - Портал продвинутых юзеров. ЕЖЕдневные сетевые новости, обзоры софта и железа, а так же все о веб-дизайне, раскрутке, выбору хостинга и не только... С нами скучать не придется! Есть раздача асек!

Films.GreatWeb.Ru - Огромный каталог фильмов, содержащий самые популярные и известные фильмы! + в каталоге есть короткая рецензия на каждый фильм! Будем киньчик смотреть :)

Форум продвинутых юзеров. Отличный форум! Каждый день наша группа выкладывает свежий софт! Присоединяйся! каждый новый пользователь, набравший 20 и большее голосов получит на халяву семизнак ICQ! Самым активным пользователям будет выделен красивый почтовый ящик на 5 mb. Ваше_имя@greatweb.ru

Лучший хостинг - Лучший хостинг на мой взгляд! GreatWeb.Ru - лежит конечно же на нем :) Цены самые низкие. Можно платить только за то за что ты хочешь! Например, если тебе не нужен PERL, ты переговариваешь с админом, он может снизить тебе цену или добавить места на диске!!! Всем советую!


У Вас есть вопросы о языке PHP? Хотите получить на них ответы? Оставляйте их в нашем культовом форуме: FORUM.GREATWEB.RU в разделе Рассылка “Все о PHP” .

.:: Новости GreatWeb.Ru

 

Вышла новая версия моего движка GreatWeb.Ru v2.1. Самое заметное изменение это появление ЧПУ. Что это такое и с чем его едят читайте ниже + появилась раздача асек! Успей ухватить свою :-) (хотите быть спонсором? Пишите ваши аськи наша реклама на сайте!)

.:: Друзья

 

Eliteuin.Com - Сайт занимающийся продажей асек! В их базе множество элитных номеров. Цены доступные. Сейчас этот сайт является спонсором нашего портала!

.::Внимание! Акция для Web-мастеров!!!

 

Наша рассылка и GreatWeb.Ru объявляем акцию: Любой живой сайт (>50 посетителей) разместивший нашу кнопку получает возможность увидеть свой сайт (его линк + обзор) на страницах нашей рассылки! Напомним, что у нашей рассылки 10.000 подп.! Успей разместить наш код! Кто поставит пишите на admin@greatweb.ru

<A href="http://greatweb.ru/">
<IMG alt="ЕЖЕдневный софт, фильмы, mp3, новости!" src="http://greatweb.ru/knopka.gif" width="88" height="31" border=0>
</A>


.:: ЧПУ (человекопонятные URL) - пошаговое создание



Существует множество вариантов создания ЧПУ. Лишь пара из всей кучи эффективные. Опишу самые распространенные:

1. Использовать mod_rewrite (наиболее работоспособно)
2. Перехватывать ошибки сервера (404), допустим, при обращении к URL /content/myarticle/ сервер пытается найти файл /content/myarticle/index.php, который на самом деле не существует, указанная 404-страница получает REFERER, затем идет обработка QUERY_STRING. Вариант рабочий, но не всегда у пользователей есть возможность создания собственных страниц ошибок.
3. Создание в каждой человекопонятной директории (/content/myarticle/) индексного файла (например, /content/myarticle/index.php)... Вариант очень плохой - издержки на дисковое пространство, да и создавать каждый раз файл не очень удобно (даже если это будет автоматизировано)
4. Использовать MultiViews. Вполне работоспособный вариант.

Рассмотрим некоторые варианты. Начнем с первого, т.к. он самый работоспособный и удобный. У меня на сайте используется именно этот вариант создания ЧПУ.
Итак начнем: создаем в любой папке или в главной каталоге файл .htaccess (точку не забывайте). В нем пишем следующее:

DirectoryIndex parseurl.php

RewriteEngine On

RewriteRule ^([^.]+)$ parse.php?$1

Вот и все. Теперь все запросы вида: http://site/par1/par2/. будут обрабатываться одним скритом. На каждый параметр можно сдать include любого скрипта, это очень удобно. Разобрать урл дело техники… используйте explode(). Не забывайте, все параметры можно получить из стандартной переменной $_SERVER['QUERY_STRING'])

Лично я рекомендую использовать именно этот вариант.

Думаю со вторым вариантом все понятно. Так же создаем файл .htaccess в нем вписывайте строчку:

ErrorDocument 404 /parse.php

Третий вариант даже не заслуживает упоминания. Слишком много минусов. А я вижу лишь один плюс, это если ваш скрипт использует БД, с помощью этого варианта можно сделать меньшее количество обращений или вообще их убрать.

Четвертый вариант вполне неплох. Одно плохо, что MultiViews есть не у каждого хостера. Как можно его использовать? Пример: пишим строчку Options + MultiViews все в тот же файл .htaccess. И далее: допестим, у нас есть файл article.php, лежащий в корне Web-сервера. Тогда запросы вида /article/php_security1, /article/sessions будут обрабатываться скриптом article.php. Если вас заинтересовал этот вариант, то можно нарыть много инфы об этом модуле в инете (юзайте ya.ru)

Существует уще много вариантов. Рассмотрим еще один. Пишем в файл .htaccess следующие строчки:

<Files parse>
    ForceType application/x-httpd-php
</Files>

Можно долго говорить об ЧПУ придумывать различные варианты... а стоит ли? Вряд ли. Самый эффективный вариант использовать mod_rewrite.

P.S. зачем могут понадобиться ЧПУ? Первое, такие УРЛ намного легче находить среди перечня прочих, второе, некоторые поисковые машины, такие как Рамблер не индексируют документы, доступ к которым осуществляется при помощи параметров. Это две наиболее весомые причины.

.:: Интерактивный переводчик


Если у Вас возникает ситуация, когда нужно перевести какую-нибудь фразу с английского на русский (к примеру), то приведенная ниже функция Вам позволит решить данную проблему.

<?
$text = "строка"; // строка на русском

$query_str = "lang=ru&status=translate&source=".urlencode($text)."&SResalt=&direction=re&template=General&image1=1";

// Формируем запрос.
$output = "POST /text.asp HTTP/1.0\n";
$output .= "Host: http://www.translate.ru/\n";
$output .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007\n";
$output .= "Accept: application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1\n";
$output .= "Accept-Language: ru,en;q=0.8,en-gb;q=0.5,en-us;q=0.3\n";

$output .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\n";
$output .= "Keep-Alive: 300\n";
$output .= "Referer: http://www.translate.ru/text.asp\n";
$output .= "Content-Type: application/x-www-form-urlencoded\n";
$output .= "Content-Length: ".strlen($query_str)."\n";
$output .= "Connection: keep-alive\n\n";
$output .= $query_str;

$f = fsockopen("http://www.translate.ru/", 80);
fputs($f, $output);

// Принимаем ответ.
$recieved = "";
while (!feof($f)) $recieved .= fgets($f, 500);

// Вытаскиваем нужную строку.
ereg("<span id=\"r_text\" name=\"r_text\">([^<]*)</span>" ,$recieved, $reg);

// Выводим результат.
echo $text." по английски будет ".trim($reg[1]);
?>

Данный скрипт использует переводчик http://www.translate.ru/text.asp?lang=ru. Но в последнее время было замечено, что их сервер сильно тормозит, парой переводит 1 слово минуту! Это дело никак не в скрипте, а с ихнем серваком!

 

Все свои вопросы Вы можете задавать на нашем форуме.

© 2002-2004 Copyright by GreatWeb.Ru
Копирование материалов рассылки возможно только в случае явного указания на сайт "GreatWeb.RU" как на источник информации.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.webphp
Отписаться

В избранное