2012-01-04 8 views
1

にファイルをインクルードします。私は唯一のケースを書いたが、20以上のcases.owがあり、私はoutput..hereを示すためのindex.php内の別のファイルが含まれない私のコードです:ここは、どのように私は、私は2つのファイルを持っている私のindex.php

//index.php  
<? 
    $xml = simplexml_load_file('http://www.google.com/ig/api?weather=dhaka'); 
    $information = $xml->xpath("/xml_api_reply/weather/forecast_information"); 
    $current = $xml->xpath("/xml_api_reply/weather/current_conditions"); 
    $forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions"); 

    ?> 
    <html> 
     <head> 
      <title>Google Weather API</title> 
     </head> 
     <body> 
      <h1><?= print $information[0]->city['data']; ?></h1> 
      <h2>Today's weather</h2> 
      <div class="weather">  

       <?php 

       include 'condition.php'; 
       ?> 

       <span class="condition"> 
       <?= $current[0]->temp_f['data'] ?>&deg; F, 
       <?= $current[0]->condition['data'] ?> 
       </span> 

      </div> 

       </body> 
    </html> 

はcondition.phpある

switch ($cond) 
      { 
       case "Mostly Cloudy": 
        $col="/test/images/weather/mostly_cloudy.png"; 
        echo "<img src=\"$col\" alt=\"\"/>"; 
        break; 

       case "Thunderstorm": 
        $col="/test/images/weather/thunderstorm.png"; 
        echo "<img src=\"$col\" alt=\"\"/>"; 
        break;} 

私は2件を投稿しましたが、20件以上があります。

+0

何が問題なのですか?それは正しいようです。 – Jules

+0

$ condはどこに定義されていますか? index.phpのどこにも定義されていない場合は、どこでもcondition.phpに定義されず、 'default'の場合以外は一致しません。つまり出力されません。 –

+0

$ condはindex.php.typing mistakeで定義されています – Adnan

答えて

2

<?php include("condition.php"); ?>を使用して正しい方法を実行しています。スイッチが実際に何かを行うように、$condを定義するだけです。あるいは、condition.phpから関数を作成し、それをそのように使用することもできます。それはたぶん "クリーンな"方法です。

例:それはそう限り、あなたはinclude文の前に$cond変数を宣言すると、これは正常に動作する必要があり、すぐそこに書かれていたかのように

<?php 
$cond = "Thunderstorm"; 
include 'condition.php'; 
?> 
+0

私はまだこのメソッドは、Xの数が含まれているので、関数を使用する "20ケース" – Jakub

+0

投稿全体のスイッチをドロップし、ファイル名として同じ文字列名を使用します。 1行で行うことができます。 – mat

+0

@matはあなたを取得しませんでした。それを記述してください。 – Adnan

-1

ちょうどやっているように、include()を使用して、あなたのPHPにページを含めることができます。

conditions.phpで使用しているあなたの$cond変数はインクルードが含ま前index.phpで定義されているか、conditions.php自体に定義されていることを確認しているが行います。

とにかく
<?php 
    include('condition.php'); 
?> 

ANあなたが含まれたコードが実際にこれindex.phpで、非常に同じ場所で、あなたがそれを含める権利を書かれていたかのような行為が含まれます。

+0

彼はすでにそれをやっています - 私は彼が何を求めているのかよく分かりませんが、彼は彼のコードにその行を含んでいます。 –

+0

スイッチの出力を表示できますか?マニュアルの例と同様です。 – Adnan

+1

はいできます。あなたの 'conditions.php'で' echo ... 'を使っていますので、' index.php'のようにWebページに書かれているように表示されます。 – Jules

2

include機能が含まれているスクリプトからコードを含んでいます。

1

私が正しく理解していれば、あなたが何度も再利用できる機能が欲しい:

ので、あなたのcondition.phpは次のようになります。

function outputWeather($cond){ 
    switch ($cond) { 
       case "Mostly Cloudy": 
        $col="/test/images/weather/mostly_cloudy.png"; 
        echo "<img src=\"$col\" alt=\"\"/>"; 
        break; 

       case "Thunderstorm": 
        $col="/test/images/weather/thunderstorm.png"; 
        echo "<img src=\"$col\" alt=\"\"/>"; 
        break; 
        } 
} 

index.phpにし、ちょうどあなたにそうのような関数を呼び出すことを含めますループ:

<?php outputWeather($current[0]->condition['data']); ?> 
関連する問題