• ベストアンサー

どなたか助けて下さい

天気予報をrssで取得して晴ならば画像を表示するようにしているのですがcase文に入ってくれません。試しにechoで表示させたら1=晴と表示されます。何が考えられますでしょうか?どなたか助けて下さい。 echo "1=", $wether[1]; $wether = split("<br />", $description); switch($wether[1]){ case "晴": $buf .= "<img src='/image/hare.gif'>"; break; ・・・あと続く }

  • PHP
  • 回答数4
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • racci
  • ベストアンサー率64% (9/14)
回答No.4

>ですが、echo "晴れ";とすると文字化けします。 RSSで取得した情報の文字コード、PHPプログラムファイルの文字コードが一致していないんじゃないでしょうか。

その他の回答 (3)

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.3

> 試しにechoで表示させたら というのは、 > echo "1=", $wether[1]; この時点のことですか?だとすると、その直後、 > $wether = split("<br />", $description); これで$wetherの内容を更新しています。 この時点での$wether[1]の内容は、思ったとおりになっていますか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

天気はweatherですね・・・。 echo "1=", $wether[1]; $wether = split("<br />", $description); としているなら最初には「晴」がはいっていて それがそのあとの処理でクリアになっているのでは? もしくは文字コードがことなるとか・・・。 半角英数でためしてみては?

  • racci
  • ベストアンサー率64% (9/14)
回答No.1

$wether = split("<br />", $description); のあとに、echo "1=", $wether[1]; してみてください。 要は、$wether = split... のところで、$wether[1]の値が上書きされて、「晴」じゃなくなっているのだと思います。

honmati715
質問者

補足

上記試したところ晴が表示されます。。。 ですが、echo "晴れ";とすると文字化けします。 何か関係ありますか?

関連するQ&A

  • php javascript

    今、googlemapsに天気情報を読み込ませて天気によって場所を表示させたいと思っております。そこで天気情報をhttp://web1.aaacafe.ne.jp/~tenki/tenki.xml をMagpieRSSを用いて、 http://kenbo.net/tenki/tenki_rss.html を参考にし取得しました。 また↓のサイトを参考にし http://www.nob.gr.jp/tips/tips.html 天気の部分だけを抜き出すことが出来るようになりました。 tenki_rss.php↓ <?php … … $wether = split("<br />", $description); switch($wether[1]){ case "晴": ☆☆☆☆☆☆☆☆☆ break; case "雨": ☆☆☆☆☆☆☆☆☆ ・・・・・・ } … … ?> 上記の☆部分が実行されたらメインのgooglemapのhtml↓ test.html↓ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> … <script src="http://maps.google.com/maps?file=api&v=2&key=キー" type="text/javascript"></script> … … <script type="text/javascript"> //<![CDATA[ function test(){ … } … … //]]> </script> </body> </html> のfunction test()に飛ばせる?ような方法はありますでしょうか? メインのhtmlはjavascriptで天気情報はPHPで作っています。 プログラム初心者なんであまり説明がうまくなくすみませんが分かる方がいらっしゃいましたらご教授の方よろしくお願いします。

    • ベストアンサー
    • PHP
  • 正規表現で、文字をタグに

    正規表現初心者です。 「晴れ」 → 「<img src=hare.gif>」に 「雨」 → 「<img src=ame.gif>」といった感じで 文字を画像タグに変換するシステムを考えているのですが 「晴れのち雨」を→「<img src=hare.gif><img src=nochi.gif><img src=ame.gif>」に 「雨時々曇り」を→「<img src=ame.gif><img src=tokidoki.gif><img src=kumori>」 にする場合ですが。 function tenki($a){  $b = $a;  $b = ereg_replace("晴","<img src=hare.gif>",$b);  $b = ereg_replace("雨","<img src=ame.gif>",$b);  $b = ereg_replace("曇り","<img src=kumori.gif>",$b);  $b = ereg_replace("雪","<img src=yuki.gif>",$b);  $b = ereg_replace("時々","<img src=tokidoki.gif>",$b);  $b = ereg_replace("のち","<img src=nochi.gif>",$b);  echo $b; } tenki("天気文字列"); で良いのでしょうか?? 「晴」だけの場合でも、全ての処理を通してしまうのですが、それでいいのか疑問なので質問させていただきました。

    • 締切済み
    • PHP
  • PHPで画像を表示するプログラムについて

    実行するとランダムで取得した値を利用して、3パターンくらいの画像を切り替えて表示するPHPファイル を作成したいです! 以下のように書いてみたのですが、如何せん初心者なものでできない原因すらわかりません! 間違っているところを是非指摘していただきたいです。 宜しくお願い致します <?php $rand = rand(1,10); switch($rand){ case 1: echo("1"); break; case 2: echo("2"); break; case 3: echo("3"); break; case 4: echo("4"); break; case 5: echo("5"); break; case 6: echo("6"); break; case 7: echo("7"); break; case 8: echo("8"); break; case 9: echo("9"); break; case 10: echo("10"); break; if ($rand <= 3){ echo"<img src='a.jpg'>"; } elseif ($rand 4< || $rand >6 ) { echo"<img src='b.jpg'>"; elseif ($rand 7< || $rand >10 ) { echo"<img src='c.jpg'>"; } } ?>

    • 締切済み
    • PHP
  • 画像をひとつにするには・・・?

    $kao = $_POST["kao"]; $karada = $_POST["karada"]; if($kao != "" && $karada != ""){ echo "<center><img src='$kao'></center>"; echo "<center><img src='$karada'></center><br>"; } というように、顔と体の画像を表示させたらふたつの画像として表示されますが、これをひとつの画像とするにはどうしたらよいのでしょうか? 回答お願いします!!

    • ベストアンサー
    • PHP
  • 携帯サイトがソフトバンクのみ表示されない

    お世話になります。 只今携帯サイトを作成中なのですが、調べてもどうしてもわからなかったので質問させていただきます。 RSS取得のPHPコードを埋め込んだPHPファイルがソフトバンクのみ、埋め込んだ場所から何も表示されなくなってしまいます。 Docomo,auは普通に表示されます。下記が全部共通のソースです。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>aaaaaaaaaaa</title> </head> <body> <a name="top"></a> <div align="center"><img src="img/top.png"></div> <marquee bgcolor="#FF9900" LOOP=16> <font size="-1" color="#FFFFFF">aaaaaaaaaaaaaaaaaaaaaaaaa</font> </marquee> <hr><br> <div align="left"><img src="img/news.png" width="80" height="19"><br> <?php $url = 'http://〇〇〇〇〇〇〇〇〇〇〇/rss2/'; $rss = fetch_rss($url); $title = $rss->channel['title']; echo " <dl>\n"; $rss->items = array_slice($rss->items, 0, 3); foreach ($rss->items as $item ) { $title = $item[title]; $url = $item[link]; $date = $item['date_timestamp']; $date = date('Y年m月d日',$date); echo " <dt>$date </dt>\n"; echo " <dd><a href=\"$url\">$title</a></dd>\n"; } echo " </dl>\n"; ?> </div> どなたかご教授お願いいたします。 本当に困っています。よろしくお願いします。

    • 締切済み
    • PHP
  • RSSを取得したいのですが

    下記サイトを参考に、以下のコードを埋め込んだのですが、 http://plaza.rakuten.co.jp/kemusiro/diary/200601150000/ 日付が (1970/01/01 00:00:00) と表示された上に文字化けしてしまいます。 MagpieRSSはmagpierss-0.72.tar.gzから必要ファイルを、index.phpの下におきました。 正常に表示させるためには、どう直せばよいでしょうか? <?php require_once('magpierss/rss_fetch.inc'); define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); $count = 5; $length = 60; $url = 'http://api.plaza.rakuten.ne.jp/kemusiro/rss/'; $rss = fetch_rss($url); echo "<ul>"; array_splice($rss->items, $count); foreach ($rss->items as $item) { $href = $item['link']; $title = mb_convert_encoding($item['title'], "SJIS", "auto"); $date = date('Y/m/d H:i:s', parse_w3cdtf($item['dc']['date'])); $description = mb_convert_encoding($item['description'], "SJIS", "auto"); if (mb_strlen($description) > $length) { $description = mb_strcut($description, 0, $length) . "..."; } echo "<li>"; echo "<FONT color=\"#ff8040\">(" . $date . ")</FONT> "; echo "<a href=$href>" . $title . "</a><BR>"; echo $description . "</li>"; } echo "</ul>"; ?>

    • 締切済み
    • PHP
  • Javascriptで動的にテーブル表示したい

    下記、 PHPの$title 、 $link 、$description を Javascriptで動的にテーブル表示したいです。 表示したいテーブルをHTMLで書くと、 ※以下の3列、複数行になります。 <TABLE> <TBODY> <TR> <TD width="108" height="100"></TD> <TD width="229" height="100"></TD> <TD width="396" height="100"></TD> </TR> </TBODY> </TABLE> 初心者であるため具体的に書き方を御指導お願いできればと思います。 何卒、よろしくお願い致します。 ----------------------------------- <?php 【省略】 header("Content-type: application/x-javascript"); echo 'document.open();'; // open if ($rs = $rss->get($url_flux_rss)) { for($i=0;$i<$limite;$i++) { $title = mb_convert_encoding($rs['items'][$i]['title'], $mojicode, 'auto'); $link = '<a href="http://xxx">' . $title . '</a><br />'; echo 'document.write(\'' . $link . '\');'; if ($d == 1) { $description = mb_convert_encoding($rs['items'][$i]['description'], $mojicode, 'auto'); echo 'document.write(\'' . $description . '<br /><br /><br />\');'; } } } else { echo 'document.write(\'' . $errormessage . '\');'; } echo 'document.close();'; // close ?>

  • ユーザー認証&リンク先振り分け

    下記のようなプログラムにてユーザー認証&リンク先の振り分けを考えているのですが、上手に出来ません。どこか問題がありましたら教えていただけないでしょうか?エラー構文などは出ないのですが、フォーム上からユーザーIDとパスワードを入力してもうまくページが切り替わらず、同じログインフォームのページが開いてしまうのです。 <?php // $data_file = "d_file.dat"; //データファイルの指定 $authlevel = 0; //権限レベル if($action == "post"){ $p_data = file($data_file); $p_flag = 0; for($i=0; $i<count($p_data); $i++){ list($id,$pass,$authlv) = split(",", $p_data[$i]); if($id == $u_id && $pass == $passwd){ $authlevel = $authlv; //権限レベルを読む $p_flag++; } } if($p_flag > 0){ switch (authlevel){ case 1: require ("http://www.dell.com"); break; case 2: require ("http://www.whitehouse.gov"); break; case 3: require ("http://www.yahoo.com"); break; case 4: require ("http://www.google.com"); break; case 5: require ("http://www.yahoo.co.jp"); break; default://上記以外 require ("http://www.kantei.go.jp"); break; //echo "<CENTER><BR><BR><BR><FONT COLOR='blue'>おめでとうございます。あなたは正式に認証されました。<BR><BR>\n"; //echo "ここにお好きなHTML表示を埋め込んで下さい。</FONT>\n"; } } else { echo "<CENTER><BR><BR><BR><FONT COLOR='red'>ユーザーIDとパスワードが間違っています。やり直して下さい。</FONT>\n"; } } ?> ちなみに、パスワードファイル(d_file.dat)には (ユーザーID),(パスワード),(権限レベル), と記述したファイルを用意しました。

    • ベストアンサー
    • PHP
  • データベースから出力したデータを横並びに

    while($row = mysql_fetch_array($res)){ echo '<div class="aa">'; echo ''.$row['name'].'<br>'; echo'在庫数:'.$row[''].'個<br>'; echo '値段:'.$row[''].'円/個<br>'; echo '<img src='.$row[''].'><br></div>'; } このようにしたら縦に並んでしまうんですが、どのようにしたら横並びになるんでしょうか??

    • ベストアンサー
    • PHP
  • PHPについて教えてください。

    $RSS_data = simplexml_load_file($RSS_url); foreach($RSS_data->Items->Item as $value){ $img[] = "<img src=\"{$value->Image->URL}\" width=" 200 " height=" 200 ">"; } for ($i = 0, $n = count($img); $i < $n; $i++) { if (($i / 6) == 1) { echo $img[$i] . "<br />"; } else { echo $img[$i]; } } 上記の文でパースエラーがでました。エラーのラインは $img[] = "<img src=\"{$value->SmallImage->URL}\" width=" 200 " height=" 200 ">"; です。 width=" 200 " height=" 200 "  これを取るとエラーがでずに通ります。画像のサイズを指定したいのですが、このやり方駄目ならどうすればいいのでしょうか? あと、やりたいことは画像を7つ表示したら改行して、また下に画像を7つ並べることを繰り返す。 というようにしたいのですが、このやり方だと1列目は7つでちゃんと改行されるのですが、2列めからは改行されずに画像が並んでしまいます。 どうすればいいでしょうか?どちらかだけでもいいのでわかる方教えてください。 お願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう