DBまたはファイルからページを取り込むクエリ文字列

Is this facebook link populated fully from the DB? Or, is it a physical file with PHP in it? Just, how is this page called?
http://www.facebook.com/profile.php?id=49300915&sk=photos
They probably do something like:

if(isset($_GET['id'], $_GET['sk'])) {
    mysql_query("SELECT info, photos FROM users WHERE id = '$id'");
    }

私は尋ねようとしています、彼らはこのページをどのように含んでいますか? PHPやページがDBに格納されているDrupal/CMSのようなものか、それともサーバ上の物理ファイルですか?後者の場合、ファイルを取得する最善の方法(大文字と小文字を区別しないURL)は何ですか?

0
追加された
ビュー: 1
実用的な例、facebookとは関係ありません。それは約$ _GET [変数] /クエリ文字列であり、クエリ文字列に基づいてページを生成します。ページはどのように呼び出されますか?それは超簡単な質問です。私はおそらくそれを複雑にしています。
追加された 著者 Graham,
実際にFacebookの仕組みを知りたいのですか、それとも類似のものを作りたいだけですか? Facebookはトラフィックの狂気の量を受け取るので、ウェブサイトは世界の他のサイトと同様に構築されていません。 URLに ".php"があるにもかかわらず、そのページがPHPコードをまったく実行しないと私は驚くことはありません。
追加された 著者 Abhi Beckert,
それは本当に簡単な質問ではなく、全く異なる答えがたくさんあります。良いシステムを持つことが重要です。そうしないと、コードがバグになる傾向があります。 「profile.php」は、その1ページだけでなく、多くの異なるページを実行することになり、すべての異なるページのコードを分離する方法が必要であることを覚えておいてください。私は、私が働いているWebプログラミングビジネスで、私たちがどのようにして行動するかについて答えました。
追加された 著者 Abhi Beckert,

1 答え

私は、値が何であるかに応じて、 'sk'を読み込んで別のメソッドを実行する単一のメソッドを持つクラスを持っています。

1つの方法は '写真'で、これは 'id'を読み取ってデータベースから写真を取り出すものです。次に、別のメソッド displayPage を実行すると、そのデータのページが表示されます。

displayPage メソッドはテンプレートに提供する "テンプレート"ファイル名と変数の配列を取ります。 スマートオブジェクトを設定し、変数を提供し、テンプレートを表示するように指示します。

テンプレートの中には、サイト内のすべてのページにあるグローバルヘッダー用の別のテンプレートを含めると、htmlページのコンテンツがあり、smartyを使用して動的な値を挿入し、グローバルフッターを追加します。

私はこのシステムを多く簡略化していることに注意してください。大きなウェブサイトは単純なページを表示するだけのものが多いので(例:ログインしたユーザーが実際にページにアクセスできるかどうかを調べるなど)、実際のページではすべてのコードを書くのに1週間かかります。私はあなたが与えた例にアクセスできない)。

<?php

// profile.php

class ProfileController
{
  public function run()
  {
    if ($_GET['sk'] == 'photos')
      return $this->photosPage();
  }

  protected function photosPage()
  {
    $id = (int)$_GET['id'];
    $result = mysql_query("select * from photo where id = $id");
    $photo = mysql_fetch_object($photo);

    $this->displayPage('view-photo.tpl', array('photo' => $photo);
  }

  protected function displayPage($templateFile, $templateVariables)
  {
    $smarty = new Smarty();

    foreach ($templateVariables as $variableName => $variableValue) {
      $smarty->assign($variableName, $variableValue);
    }

    $smarty->display($templateFile);
  }
}

$conntroller = new ProfileController();
$controller->run();

スマートなコード:

<!-- view-photo.tpl -->
{include file='head.tpl'}

View Photo {$photo->name|escape}

height|escape}>

{include file='foot.tpl'}
1
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

招待状へのリンク: https://t.me/joinchat/B2gdSlA_dh1-BQtEKA2dfw このグループではPHPについて話します。 パートナー:kotaeta.com