0

リンクのサンプルは次のようになります "/jet/index.php?year=2011&quarter=Q1" ここで、2011 年の第 1 四半期の最初の月を含むページを表示する必要があります。 /jet/index.php?year =2011&quarter=第 1 四半期は、4 月 5 月 6 月と表示されます。等々。

私のコードは次のようになります

 <a href="index.php?year=2011&quarter=Q1">
    <a href="index.php?year=2011&quarter=Q2">
    <a href="index.php?year=2011&quarter=Q1">
    <a href="index.php?year=2011&quarter=Q4">

2012年の私のホームページは問題なく動作します。コードは次のとおりです

 <?php 
$quarters = array('Q1' => 'firstq2012.php', 'Q2' => 'secondq2012.php', 'Q3' => 'thirdq2012.php', 'Q4' => 'fourthq2012.php');
if(isset($_GET['quarter'])) {
    if(in_array($_GET['quarter'], array_keys($quarters))) {
        include_once $quarters[$_GET['quarter']];
    } else {
        header('Location: 404.php');
    }
} else {
    include_once $quarters['Q3'];
}
?>

2012年から2011年への移行がどのようになるかについてあなたの助けが必要です(リンクを介して行います)

ありがとう!

4

1 に答える 1

0

私はあなたのコードを完全に変更します...

四半期をチェックして含めるコード

<?php
if(isset($_GET['year']) && isset($_GET['quarter'])) {
 // get params
 $year = (strlen($_GET['year']) == 4 && is_numeric($_GET['year']) ? (int)$_GET['year'] : date('Y'));
 $quarter = (substr($_GET['quarter'], 0, 1) == 'Q' && is_numeric(substr($_GET['quarter'], 1, 1)) ? (int)substr($_GET['quarter'], 1, 1) : ceil(date('n') / 4));

 $quartalsNumberToName = array(
  1 => 'first',
  2 => 'second',
  3 => 'third',
  4 => 'fourth'
 );
 $filename = $quartalsNumberToName[$quarter] .'q'. $year .'.php';

 if(file_exists($filename)) {
   include_once($filename);
 } else {
   header('Location: 404.php');
   exit;
 }
} else {
 include_once($quartalsNumberToNume[3] .'q2012.php';
}
?>

リンクを生成するコード:

<ul>
<?php
// the start year
$yearStart = 2011;

for($i = $yearStart; $i <= date('Y'); $i++) {
  for($j = 1; $j <= 4; $j++) {
?>
  <li><a href="index.php?year=<?php echo($i); ?>&amp;quarter=Q<?php echo($j); ?>">Year <?php echo($i); ?>, Quarter <?php echo($j); ?></a></li>
<?php
  }
}
?>
</ul>

テストされていません...しかし、動作するはずです。

于 2012-07-31T11:14:23.887 に答える