Помощник
|
Ссылки |
Валериан
|
Сообщение
#1
|
||
|
|
||
|
|||
ZhukV |
11.6.2010, 17:49;
Ответить: ZhukV
Сообщение
#2
|
|
Использовать ЧПУ.
Вот некий пример: Файл .htaccess RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?page=$1 [L,QSA] После этого у тебя всегда будет запускаться только index.php который лежит в одном каталоге вместе с .htaccess А теперь в файлике index.php нипишы: [PHP] print_r($_GET["page"]); [/PHP] Поексперементируй с адресной строкой, и сразу увидиш, как оно работает. Есть готовый класс для работы с ЧПУ. (Слаживал сам, для своих сайтов): [PHP] class CHPU{ private $CHPU_ARRAY = array("PAGE","TYPE","FILE"); private $INDEX_FILE = array("FILE" => "index", "FORMAT" => "html", "TYPE" => "KEYS", "DEFAULT" => "index.html"); private $IS_CYR = true; private $FORMAT = ""; private $NAME_GET = "page"; public $SEPARATOR_VALUE = array("-","оголошення_", "новини_", "пошук_"); public $PAGE = array(); public $VALUE = ""; public $URL = ""; /*-------------------------------------------------- Функция перекодирования параметра URL *--------------------------------------------------*/ private function CYR($text = "", $convert = "cyr"){ if($this -> IS_CYR){ if(!function_exists("strToCyrilic")){ trigger_error("Отсутсвует функция перекодирования URL.", E_USER_ERROR); } else { return strToCyrilic($text, $convert); } }else{ return $text; } } /*-------------------------------------------------- Функция генерации массива страницы --------------------------------------------------*/ private function CreatePAGE($P = ""){ if(!$P){ $PAGE = $_GET[$this -> NAME_GET]; }else{ $PAGE = $P; } if(!$PAGE){ $this -> PAGE = array("FILE" => $this -> INDEX_FILE); return $this -> PAGE; } $RT = explode("/",$PAGE); $PATTERN = '/^'; $PATTERN .= is_array($this -> SEPARATOR_VALUE) ? "(" . @implode("|", $this -> SEPARATOR_VALUE) . ")" : $this -> SEPARATOR_VALUE; $PATTERN .= '/'; for($i = 0; $i < count($RT); $i++){ $F = explode(".",$RT[$i]); $TYPE = preg_match($PATTERN, $RT[$i], $S); $SEP = $S[1]; if($F[1]){ $MODE = array("-","_"); $RESULT["FILE"] = array ( "FILE" => $SEP ? $this -> CYR(str_replace($MODE, "", $SEP)) : $this -> CYR($F[0]), "FORMAT" => $F[1], "TYPE" => $TYPE ? "VALUE" : "KEY", "DEFAULT" => $RT[$i], "VALUE" => str_replace($SEP, "", $F[0]) ); } else { $RESULT[$this -> CHPU_ARRAY[$i]] = $this -> CYR($RT[$i]); } } $RESULT["FILE"] = $RESULT["FILE"] ? $RESULT["FILE"] : $this -> INDEX_FILE; DeleteElementArray($RESULT,"","NULL"); $this -> PAGE = $RESULT; $this -> FORMAT = $RESULT["FILE"]["FORMAT"]; $this -> VALUE = $RESULT["FILE"]["VALUE"]; return $this -> PAGE; } /*-------------------------------------------------- #################################################### #################################################### --------------------------------------------------*/ public function getNameGET(){ return $this -> NAME_GET; } /*------------------------------------------------*/ public function getFormat(){ $PAGE = $_GET[$this -> NAME_GET]; $TEMP = explode("/", $PAGE); $TEMP = explode(".", $TEMP[count($TEMP) - 1]); return $TEMP[1] ? $TEMP[1] : $this -> INDEX_FILE["FORMAT"]; } /*------------------------------------------------*/ public function getPage(){ return $this -> PAGE; } /*------------------------------------------------*/ public function setPage($P = ""){ return $this -> CreatePAGE($P); } /*------------------------------------------------*/ public function getURL($DOMEN = true){ $RESULT = $DOMEN == true ? "http://" . $_SERVER["HTTP_HOST"] . "/" : ""; $RESULT .= $_GET[$this -> NAME_GET]; $RESULT = $RESULT ? $RESULT : "Отсутвует"; return $RESULT; } /*------------------------------------------------*/ public function setSeparatorValue($VALUE = ""){ if($VALUE){ $this -> SEPARATOR_VALUE[] = $VALUE; } } /*-------------------------------------------------- Гененрирует ссылку в формате HTML тега, параметра HREF --------------------------------------------------*/ public function CreateHrefA($T = array(), $TYPE = "HREF"){ $URL = _DOMEN; if($T["PAGE"]){ $URL .= $T["PAGE"] . "/"; } if($T["TYPE"]){ $URL .= $T["TYPE"] . "/"; } if($T["FILE"]){ $URL .= $T["FILE"]; } if($TYPE == "HREF")return $URL; elseif($TYPE = "A") return "<a href=\"{$URL}\">{$URL}</a>"; } /*-------------------------------------------------- #################################################### #################################################### --------------------------------------------------*/ function __construct($START = false){ if($START === true){ $this -> CreatePAGE(); } } /*------------------------------------------------*/ function __toString($DOMEN){ return $this -> getURL; } /*------------------------------------------------*/ } [/PHP] В нем все очень порстенько. Сразу есть функции для создания таких ссылок. Сразу прошу принять к вниманию переменную SEPARATOR_VALUE Вот как оно делается. Если при файле находится хотя бы один сепаратор, который определен в массиве, дефоулт файл пойдет на индекс, и создается переменная, в которой имеется значение. ИСПОЛЬЗУЯ КЛАСС МОЖНА СПОКОЙНО ИСПОЛЬЗОВАТЬ КИРИЛИЦУ http://domen.ru/пошук/розширений.html Можна в нем много чего експерементировать. УДАЧИ. |
|
|
ZhukV |
11.6.2010, 17:51;
Ответить: ZhukV
Сообщение
#3
|
|
А кстати, забыл функцию прикрепить:
ОНИ ЕСТЬ ОБЕЗАТЕЛЬНЫМИ!!! [PHP] /*--------------------------------------------------------- Функция удаления елементов массива Входящий параметр, массив, имеет жесткую ссылку ---------------------------------------------------------*/ function DeleteElementArray(&$array,$val,$type="key"){ if(!is_array($array))return false; $t["key"]=array_keys($array);$t["value"]=array_values($array); $r["key"]=array();$r["value"]=array(); for($i=0;$i<count($array);$i++){ if($type=="key"){ if($t["key"][$i]!==$val){ $r["key"][] = $t["key"][$i]; $r["value"][] = $array[$t["key"][$i]]; } } else if($type=="NULL"){ if(!empty($t["value"][$i])){ $r["key"][] = $t["key"][$i]; $r["value"][] = $array[$t["key"][$i]]; } } else if($type=="val"){ if($t["value"][$i]!==$val){ $r["key"][] = $t["key"][$i]; $r["value"][] = $array[$t["key"][$i]]; } } } if($r["key"] && $r["value"]){ return $array = @array_combine($r["key"],$r["value"]); } } /*--------------------------------------------------------- Функция перекодирования строки из кирилицы в латиницу и наоборот ---------------------------------------------------------*/ function strToCyrilic($text = "", $convert = "cyr"){ $STR_ARRAY = array("а"=>"a","б"=>"b","в"=>"v","г"=>"h","д"=>"d","е"=>"e","є"=>"ye","ж"=>"zh","и"=>"u","і"=>"i","з"=>"z","к"=>"k","л"=>"l","м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t","у"=>"y","ф"=>"ph","х"=>"h","ц"=>"tc","ч"=>"ch","ш"=>"sh","щ"=>"sh","ь"=>"","ю"=>"yu","я"=>"ya","э"=>"e","ы"=>"u","ъ"=>""); $convert = strtoupper($convert); $K["RUS"] = array_keys($STR_ARRAY); $K["CYR"] = array_values($STR_ARRAY); if($convert == "CYR"){ return str_replace($K["RUS"],$K["CYR"],$text); } else if($convert == "RUS"){ return str_replace($K["CYR"],$K["RUS"],$text); } } [/PHP] |
|
|
Валериан
|
Сообщение
#4
|
|
Спасибо огромное!
|
|
|
Валериан
|
Сообщение
#5
|
|
ой. Сделал все, как вы сказали из первого способа, все нормально, а картинка из базы не грузится. Сравните: http://titanic-in-color.com/english/olympic/id2
и http://titanic-in-color.com/english/olympi...mments.php?id=2 Что делать? :niasilil: |
|
|
ZhukV |
14.6.2010, 9:42;
Ответить: ZhukV
Сообщение
#6
|
|
|
Вот здесь и действительно загорстка.
В любом случае открывается файл в корне index.php Оброботчик нужно вешать в этом файлике, либо порверять по скрытым полям и инклюдить определенные файлы.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Ссылки за которые не стыдно! Качественный линк билдинг сервис под Бурж от Westrank. Честный прайс. | 63 | DaoDog | 47043 | Сегодня, 12:05 автор: Omaxis |
|
Крауд ссылки с форумов, блогов, порталов. Жирные ссылки с Ua,Ru, Бурж площадок. Вечные ссылки в статьях на собственных сайтах Быстро, качественно и ответственно! |
138 | vetalbon | 66417 | 13.4.2024, 17:53 автор: vetalbon |
|
SEO Линк Билдинг под Бурж | Вечные ссылки США, Европа и Мир с Гарантией | 20 | Needmylink1 | 7000 | 12.4.2024, 23:32 автор: Needmylink1 |
|
Вечные ссылки с трастовых сайтов | 53 | 1informer | 22672 | 7.4.2024, 13:47 автор: 1informer |
|
Оптом и в розницу, скупаю ссылки околомедицинской тематики. | 3 | kasey7 | 2015 | 4.4.2024, 19:12 автор: kasey7 |
Текстовая версия | Сейчас: 19.4.2024, 17:09 |