0

コード:

     <html>
        <head>
        <title><?php echo $title; ?></title>
        </head>
        <body>
        <?php
            }if($_GET['page'] == 'Post'){
$title = "Post";
    ?>
    <div id = "contents">
    Post
    </div>

    <?php
            }else{
    ?>
        <div id = "contents">
$title = "Bla Bla Bla";
        Bla Bla Bla
        </div>
    <?php
            }
        }
    ?>
        </body>
        </html>

先頭の後に変数を定義できないことはわかっていますが、どうすればよいかわかりません。単一の PHP ファイルを使用してこれを実行したいと考えています。この方法が不可能な場合、他にどのような方法がありますか? 各動的ページのメタ コンテンツも変更したい場合、どうすればよいですか? また、これをSEOフレンドリーにしたいと考えています。それはどのように行われますか?

4

4 に答える 4

1

次のように並べ替えてもう1つの変数を使用するのはどうですか。

<?php
  if($_GET['page'] == 'Post'){
    $title = 'Post'
    $content= '<div id = "contents">Post</div>';
  } else {
    $title = 'Bla Bla Bla';
    $content = '<div id = "contents">Bla Bla Bla</div>';
  }
?>
<html>
<head>
  <title><?php echo $title; ?></title>
</head>
<body>
  <?php echo $content; ?>
</body>
</html>

このようにして、ページを計算(PHPの上部)に分割し、ヘッダーも送信できるようにします。そして下部の出力。(私の意見では)はるかに明確な構造になります。

于 2013-03-11T08:50:58.360 に答える
1

同じ if ステートメントを数行上に追加するだけでもかまいません。

したがって、コードは次のようになります。

<html>
    <head>
        <?php if(..your condition) { ?>
            <title>Show correct title>
        <?php } else { ?>
            <title>Other title, maybe with some meta tags..</title>
        <?php } ?>
    </head>

    <body>
        <?php if(..and the same condition again) { ?>
            <h1> And thus, it is the same condition </h1>
        <?php } ?>
    </body>
</html>

私が言っていることを理解していただければ幸いです;-)

編集: このソフトウェアの設計に「同意」しないことに注意してください。というか、デザイン性に欠ける。それは単純な質問に対する単純な答えです;-)

于 2013-03-11T08:49:52.900 に答える
0

以下のようにしてください。

<?php
 $title = isset($_GET['page']) ? $_GET['page'] : 'normal heading';
?>

<html>
  <head><title><?=$title?></title></head>
</html>

HTMLコードの前に変数を定義します。

于 2013-03-11T08:51:59.360 に答える
0
<?php ob_start(); /* open output buffer */ ?>
<html>
  <head><title>{title}</title></head>
[php/html code]
<?php
   $response = ob_get_clean(); /* get output buffer and clean */
   $metas = array('{title}' => $title, '{description}' => $description); 
   $response = strstr($response, '{title}', $title); 
   echo $response;

または、smarty やその他のテンプレート エンジンを使用します。

于 2013-03-11T09:00:58.873 に答える