Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как переписать данный код более элегантнее?
 
 автор: JIEXA   (07.08.2007 в 16:28)   письмо автору
 
 

Есть кусочек кода, я его сам написал, но написал так криво и не читабельно, что мне самому его очень трудно читать/изменять. Может у кого-нибудь есть идеи, как можно переписать этот код более понятнее. Буду очень благодарен.

<?
include "inc/core_site.inc.php";

$host =  explode("."$_SERVER['HTTP_HOST']);
$url explode("/"$_SERVER['REQUEST_URI']);

switch(
$host['0'])
{
    case 
"www":
    
header("Location: ".$settings['url']);
    break;

    case 
$settings['domain']:
    if(
$url['1'] == "community")
    {
        if(!empty(
$url['2']))
        {
            
$the_page intval(str_replace("/"""str_replace("page_"""$url['3'])));
            
$alias $url['2'];
            include 
"community/community.inc.php"; break;
        }
        else if(
strstr($url['2'], "page_")) 
        {    
            
$the_page intval(str_replace("/"""str_replace("page_"""$url['2']))); 
        } else { 
$the_page "0"; }
        include 
"community/community_all.inc.php"; break;
    }
    else { include 
"index.inc.php"; }
    break;
    
    default:
    
$userlogin $host['0'];
    if(
$url['1'] == "blog" and !empty($url['2']) and !strstr($url['2'], "page_"))
    {
        
$suburl explode("."$url['2']);
        
$newsid intval($suburl['0']);
        include 
"blog/blog_viewpost.php"; break;
    }
    else if(
$url['1'] == "blog"
    {
        if(
strstr($url['2'], "page_")) 
        {    
            
$the_page intval(str_replace("/"""str_replace("page_"""$url['2']))); 
        } else { 
$the_page "0"; }
            
        include 
"blog/blog.php";  break;
    } else { include 
BASE."people/userpage.inc.php"; }
}
?>


Этот код разбирает URL и взависимости от значений в URL инклудит нужный скрипт.

   
 
 автор: Unreal   (07.08.2007 в 18:24)   письмо автору
 
   для: JIEXA   (07.08.2007 в 16:28)
 

имхо проще с нуля написать т.к. это writeonly code

http://www.domain.ru/index.php?pageID=community
http://www.domain.ru/index.php?pageID=community_blabla
http://www.domain.ru/index.php?pageID=blog

переписываем это через mod_rewrite, получается что то типа
http://www.domain.ru/community/
http://www.domain.ru/blog/

правила для mod_rewrite:
RewriteEngine on
RewriteBase /
RewriteRule ^community/$ index_.php?pageID=community

а в php коде уже разбираем этот pageID


<?php

if (isset($_GET['pageID'])) {
    
$pageID $_GET['pageID'];

    switch (
$pageID) {
        case 
'community':
            include(
$homepath 'include/sub/community.php');
            break; 
        case 
'blog':
            include(
$homepath 'include/sub/blog.php');
            break;
        case 
'404':    
            
header("HTTP/1.0 404 Not Found");
            break;
        default: 
            
header("HTTP/1.0 404 Not Found");
            break;
    }
}
?>

   
 
 автор: JIEXA   (08.08.2007 в 02:11)   письмо автору
 
   для: Unreal   (07.08.2007 в 18:24)
 

Дело в том, что мне Trinux(программер nnm.ru) говорил, что лучше перенаправить .htaccess`ом все запросы на один файл и обрабатывать URL им. Так как при большой посещаемости(а она не маленькая) Mod Rewrite дает о себе знать. Или это бред?

   
 
 автор: JIEXA   (08.08.2007 в 18:45)   письмо автору
 
   для: JIEXA   (08.08.2007 в 02:11)
 

так что, идей не у кого нету? :(

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования