• ベストアンサー
  • 困ってます

PHPでYahoo、Google検索時に文字化け

お世話になります。 PHPでYahoo、Google検索を 作成したのですが、一度目は文字化けせず 動作するのですが戻って再検索すると 文字化けします。 以下コーディングサンプルです。 (動作確認はlocalhostで行っています) <?php /* PHPでGoogle、Yahooを検索する */ $strKey = mb_convert_encoding($_POST['keyword'],"UTF-8",mb_internal_encoding()); $strKey=urlencode($strKey); switch($_POST['webname']){ case "yahoo": $url="http://search.yahoo.co.jp/bin/search?p="; break; case "google": $url="http://www.google.com/search?hl=ja&ie=euc-jp&q="; break; } header("Location: ".$url.$strKey); ?> 宜しくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数313
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1
  • ryouchi
  • ベストアンサー率41% (52/125)

「戻って」という部分がよくわかりませんが、下記ソースで動作しました。 --------------------ここから-------------------- <?php define (YAHOO_URI ,"http://search.yahoo.co.jp/bin/search?p="); define (GOOGLE_URI ,"http://www.google.com/search?hl=ja&ie=euc-jp&q="); if ($_POST['keyword'] <>""){ $strKey = $_POST['keyword']; mb_convert_encoding($strKey,"UTF-8",mb_internal_encoding()); $strKey=urlencode($strKey); switch($_POST['webname']){ case "yahoo": $url=YAHOO_URI; break; case "google": $url=GOOGLE_URI; break; } header("Location: ".$url.$strKey); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-jp" /> <title>ぐーぐるとやふーでけんさく</title> </head> <body> <form method="post" action="<?php echo $_SERVER[SCRIPT_NAME]; ?>" target="_blank"> <input type="text" name="keyword" value="てすと" /> サイト:yahoo<input type="radio" name="webname" value="yahoo" checked /> google<input type="radio" name="webname" value="google" /> <input type="submit" value="けんさく" /> </form> </body> </html> --------------------ここまで--------------------

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答有難うございます。 私のコーディングミスでした。 ご丁寧に有難うございました。

関連するQ&A

  • PHPのheader()について

    OS:freebsd4.8 PHP:php-4.3.2 apache2 を使用しております。 ドキュメントルートに <HTML> <HEAD> <TITLE>検索エンジン</TITLE> </HEAD> <BODY> <CENTER><H1> 検索エンジン </H1></CENTER> <FORM METHOD= post ACTION = search.php> <TABLE BORDER = 4 WIDTH = 250 ALIGN = CENTER> <TR BGCOLOR = "#CCCCCC"> <TH>検索キーワード</TH> <TD><INPUT TYPE= text NAME= keywd size = 20 /></TD> </TR> <TR> <TH>エンジン</TH> <TD> <SELECT NAME = ENG> <OPTION VALUE = "yahoo">Yahoo!</OPTION> <OPTION VALUE = "google">google</OPTION> <OPTION VALUE = "goo">goo</OPTION> </SELECT> </TD> </TR> <TR> <TD COLSPAN ="2"><CENTER><INPUT TYPE="submit" value="検索" /><CENTER></td> </TR> </TABLE> </FORM> </BODY> </HTML> というtest.htmlをおいてます。 phpスクリプトとして <?php $stringkey = urlencode($keywd); switch($ENG){ case "yahoo": $url = "http://www.yahoo.co.jp/bin/search?p="; break; case "goo": $url = "http://www.goo.ne.jp/default.asp?MT="; break; case "yahoo": $url = "http://www.google.co.jp/search?q="; break; } header("Location: ".$url.$stringkey); header("HTTP/1.1"); ?> search.phpにパラメータを渡していますが 白いページしか表れません。 header()関数の記述が悪いのでしょうか? apache2の設定でしょうか? ちなみに2ファイルともドキュメントルートに配置してます。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHPで携帯サイト検索

    お世話になります。 PHPで携帯サイトを 検索するにはアドレス指定は どのように記述すればよいのでしょうか? PCの場合は ’Yahoo $url="http://search.yahoo.co.jp/bin/search?p="; ’Google $url="http://www.google.co.jp/search?q="; なのですが? よろしくお願いいたします。

    • 締切済み
    • PHP
  • ブラウザの文字化けに詳しいかた教えてください。

    ブラウザの文字化けに詳しいかた教えてください。 WinXP SP2, IE8.0.6 の環境で『森』という漢字が文字化けしてしまいます。 下記URLは、google及びyahooにて『森(UTF-8では%e6%a3%ae)』及び『森森』を 検索しておりますが、URL4つ目のyahooでの『森森』の検索のときだけ、文字化け をしてしまいます。 http://www.google.co.jp/search?q=%22%e6%a3%ae%22 http://www.google.co.jp/search?q=%22%e6%a3%ae%e6%a3%ae%22 http://search.yahoo.co.jp/search?p=%22%e6%a3%ae%22 http://search.yahoo.co.jp/search?p=%22%e6%a3%ae%e6%a3%ae%22 このyahooの検索にて『森』と『森』の間に『_(アンダースコア)』をいれまして http://search.yahoo.co.jp/search?p=%22%e6%a3%ae_%e6%a3%ae%22 としますと『森_森』という言葉を検索してくれますので、『森』の連続表記に 何か問題があると思うのですけれども、その原因がさっぱりわかりません。 お詳しいかたがいらっしゃいましたら、お願いいたします。

  • PHP+MySQLで文字化け

    DBからデータを持ってきてPHPで表示させると文字化けしてしまいます。 PHPはEUC-JPです。 mb_convert_encoding($message, "EUC-JP")としてみても文字化けしてしまいます。 どなたか対処方法教えていただけたら嬉しいです。

    • 締切済み
    • PHP
  • phpのmb_convert_encodingで文字化け

    phpのmb_convert_encodingで文字化け phpでmb_convert_encodingを使用してSJISよりUTF-8にエンコーディングしています。 ところが、“(”や“?”などが1文字目に存在すると文字化けしてしまいます。 どのような原因が考えられますでしょうか? お願いいたします。

    • ベストアンサー
    • PHP
  • Yahoo検索で文字化け

    お世話になります、 Google、Yahoo検索する プログラム(検索文字をテキスト ボックスから入力して) を作成したのですが、Googleは OKなのですがYahooが検索文字が 化けます。PHPのようにエンコーディング する必要があるのでしょうか? ソースは以下の通りです。 Dim ie As Object Set ie = CreateObject("InternetExplorer.Application") ' With ie '検索エンジンを判断する If Option1.Value = True Then 'Google .Navigate "http://www.google.co.jp/search?q=" & Text1.Text Else 'Yahoo .Navigate "http://search.yahoo.co.jp/search?p=" & Text1.Text End If ' .Visible = True ' End With 宜しくお願いいたします。

  • PHPのメールフォーム文字化けについて

    PHP超初心者です。 前任者が退職し、急きょWEBを引き継ぐことになりました。 現在稼動中のサイトのメールフォームは、PHPで処理を行っているのですが、 フォーム入力後に表示する入力確認画面及び送信メールで、 日本語が文字化けを起こしてしまいます。 PHP内に記述されているのは、 if(phpversion() < "4.1.0"){ $_GET = $HTTP_GET_VARS; $_POST = $HTTP_POST_VARS; $_SESSION = $HTTP_SESSION_VARS; } なのですが、レンタルサーバーのPHPバージョンは5.2.8です。 言語及び内部エンコーディングは、 mb_language('Japanese'); mb_internal_encoding(UTF-8); と設定してありますので、文字化けはバージョンの違いによるものではないかと考えているのですが、なにぶん初心者でどのように修正をかければよいのか分かりません。 尚、動作には問題はありません。 初歩的な質問で大変恐縮ですが、どなたかご回答よろしくお願いいたします。 (初心者向けの分かりやすい回答でお願いします)

    • 締切済み
    • PHP
  • PHPでトラックバック送信しようとしているのですが・・

    下のような関数を作ってトラックバックを送信する機能を実装しようとしていますが、全く上手くいきません・・。$targeturlなどの引数の値は別のPHPスクリプトから取得しています。 やっかいなのは、このプログラムを実行してもエラーが出ないことです。そのため、どこが問題なのか全く分かりません。最後の変数$resの中身も空っぽです。さっぱりわかりません・・。どうか助けてください・・。 function sendTBPing($targeturl, $topicid, $title, $excerpt){   $port = 80;   $query = "";   // POSTするデータの作成   $post = "title=".urlencode(mb_convert_encoding($title,   "UTF-8"));   $post = $post."&url=".urlencode("http://users.mswave.com/~tsugio/blog/archives.php?topicid=". $topicid);   $post = $post."&excerpt=".urlencode(mb_convert_encoding($excerpt, "UTF-8"));   $post = $post."&blog_name=".urlencode(mb_convert_encoding('sample', "UTF-8"));      // ping先URLからホスト名やパスを取り出す   $pingurl = parse_url($targeturl);   if(isset($pingurl['query'])){ $query = "?".$pingurl['query'];   }   if(isset($pingurl['port'])){ $port = $pingurl['port'];   }   // HTTPリクエストの作成   $req = "POST".$pingurl['path'].$query."HTTP/1.1\r\n";   $req = $req."Host: ".$pingurl['host']."\r\n";   $req = $req."User-Agent: PHP/".phpversion()."\r\n";   $req = $req."Content-type: application/x-www-form-urlencoded\r\n";   $req = $req."Content-Length: ".strlen($post)."\r\n\r\n";   $req = $req.$post."\r\n";   // ソケットを開く   $fn = fsockopen($pingurl['host'], $port);   if($fn === false){ throw new exception("トラックバックPINGに失敗しました");   }   // 送信   fputs($fn, $req);   // レスポンス受信   $res = "";   while(!feof($fn)){ $res = $res.fgets($fn);   }   fclose($fn);  // レスポンスのボディに<error>1</error>が含まれていればエラー   list($rhead, $rbody) = split("\r\n\r\n", $res, 2);   $rbody = urlencode($rbody);   if(strstr($rbody, "<error>1</error>") !== false){ throw new exception($rbody);   } }

    • ベストアンサー
    • PHP
  • google の検索で文字化け

    google の検索で「あいうえお」を検索したい時、数日前までは http://www.google.com/search?lr=lang_ja&q=あいうえお とブラウザのURLのところに入れれば検索できたのですが、いまこれをやると、日本語が文字化けしてして、検索できません。 ここ数日で何かあったのでしょうか?

  • UTF-8フォームをsend_mailすると文字化け PHP5

    PHP5を使用していますが、 UTF-8で作成したフォームに入力された2バイト文字(日本語)をsend_mailでメールすると、本文が文字化けしてしまいます。 下記URLなども参照したのですが、実際はどのようにしてよいのか分かりません。 URL: http://www.res-system.com/item/478 このURLでは、UTF-8の対処法として「mb_language関数、mb_internal_encoding関数を、 mb_send_mail関数の前に呼び出します。」 ■送信文字がUTF-8の時の呼び出し例 mb_language('Japanese'); mb_internal_encoding("UTF-8"); mb_send_mail('test@test.com', 'タイトル', '本文','From:aaa@aaa.com'); とありますが、これでよいのでしょうか? しかし、下記URLなどには、そもそもmb_send_mailは、使用しないようにと言われています。 URL: http://hain.jp/index.php/tech-j/2007/02/13/%EF%BC%B0%EF%BC%A8%EF%BC%B0%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91 私のphp.iniなどの現設定などもここに記載できれば良いのですが、どの部分が文字化けと関連しているのか良く分かりません(教えていただければ、追記します。)。 よろしくお願いします。 キャサリン

    • 締切済み
    • PHP