PHPで、google suggest apiを利用して、入力されたキーワードのサジェストを「a~z」,「あ~ぽ」まで全て取得するプログラムを組んでいます。
まず、単純に入力されたキーワードのサジェストを取得するだけの記述として、
PHP
1 $url = "http://www.google.com/complete/search?hl=ja&output=toolbar&ie=utf_8&oe=utf_8&q=".urlencode($keywoed); 2 $toplevel = simplexml_load_file($url); 3 foreach ($toplevel->CompleteSuggestion as $completeSuggestion) { 4 $suggest_word_array[] = $completeSuggestion->suggestion->attributes()->data; 5 }
このように書いた時、10件の検索結果が取得できました。
続いて、a~z」,「あ~ぽ」までのサジェスト全件を取得するために、
PHP
1 $added_letters_array= array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","あ","い","う","え","お","か","き","く","け","こ","さ","し","す","せ","そ","た","ち","つ","て","と","な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ","ま","み","む","め","も","や","ゆ","よ","ら","り","る","れ","ろ","わ","を","ん","が","ぎ","ぐ","げ","ご","ざ","じ","ず","ぜ","ぞ","だ","ぢ","づ","で","ど","ば","び","ぶ","べ","ぼ","ぱ","ぴ","ぷ","ぺ","ぽ");foreach ($added_letters_array as $add_letter) { 2 $search_word = $keywoed.$add_letter; 3 4 $url = 'http://www.google.com/complete/search?hl=ja&output=toolbar&ie=utf_8&oe=utf_8&q='.urlencode($search_word); 5 $toplevel = simplexml_load_file($url); 6 foreach ($toplevel->CompleteSuggestin as $completeSuggestion) { 7 $suggest_word_array[] = $completeSuggestion->suggestion->attributes()->data; 8 } 9 }
このように記述したところ、$sugest_word_arrayに値が入っていない旨のエラーを吐きました。
ネットで原因を探っても文字コードの記事しか出てこず、リクエストURLでieとoeにUTF-8を指定しているので手詰まり状態です。
検索キーワードは複数試しましたが、どれも同じくエラーです。
原因と解決策を教えていただきたいです。
よろしくお願い致します。
※追記1※
PHP
1 foreach ($toplevel->CompleteSuggestin as $completeSuggestion) { 2 $suggest_word_array[] = $completeSuggestion->suggestion->attributes()->data; 3 }
このforeachの中に、print 'a';の記述を入れたところ、「a」が表示されませんでした。
foreachの中に入っていない可能性があります。
※追記2※
$added_letters_array= arra("a","b","c","d","e",...
上記のコードを、
$added_letters_array= array("a");
この記述に変更した場合の$toplevelの中身は以下の通りです。
object(SimpleXMLElement)#1 (1) {
["CompleteSuggestion"]=>
array(10) {
[0]=>
object(SimpleXMLElement)#2 (1) {
[0]=>
object(SimpleXMLElement)#12 (1) {
["@attributes"]=>
array(1) {
["data"]=>
string(32) "ポケモンgoアップデート"
}
}
}
[1]=>
object(SimpleXMLElement)#3 (1) {
[0]=>
object(SimpleXMLElement)#12 (1) {
["@attributes"]=>
array(1) {
["data"]=>
string(23) "ポケモンgoアプリ"
}
}
}
[2]=>
object(SimpleXMLElement)#4 (1) {
[0]=>
object(SimpleXMLElement)#12 (1) {
["@attributes"]=>
array(1) {
["data"]=>
string(23) "ポケモンgo遊び方"
}
}
}
[3]=>
object(SimpleXMLElement)#5 (1) {
[0]=>
object(SimpleXMLElement)#12 (1) {
["@attributes"]=>
array(1) {
["data"]=>
string(29) "ポケモンgoアカウント"
}
}
}
[4]=>
object(SimpleXMLElement)#6 (1) {
[0]=>
object(SimpleXMLElement)#12 (1) {
["@attributes"]=>
array(1) {
["data"]=>
string(20) "ポケモンgo相棒"
}
}
}
[5]=>
object(SimpleXMLElement)#7 (1) {
[0]=>
object(SimpleXMLElement)#12 (1) {
["@attributes"]=>
array(1) {
["data"]=>
string(23) "ポケモンgo飽きた"
}
}
}
[6]=>
object(SimpleXMLElement)#8 (1) {
[0]=>
object(SimpleXMLElement)#12 (1) {
["@attributes"]=>
array(1) {
["data"]=>
string(26) "ポケモンgoアイテム"
}
}
}
[7]=>
object(SimpleXMLElement)#9 (1) {
[0]=>
object(SimpleXMLElement)#12 (1) {
["@attributes"]=>
array(1) {
["data"]=>
string(23) "ポケモンgoアプデ"
}
}
}
[8]=>
object(SimpleXMLElement)#10 (1) {
[0]=>
object(SimpleXMLElement)#12 (1) {
["@attributes"]=>
array(1) {
["data"]=>
string(20) "ポケモンgo足跡"
}
}
}
[9]=>
object(SimpleXMLElement)#11 (1) {
["suggestion"]=>
object(SimpleXMLElement)#12 (1) {
["@attributes"]=>
array(1) {
["data"]=>
string(20) "ポケモンgo相性"
}
}
}
}
}

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/10/30 12:04 編集
2016/10/30 12:05
退会済みユーザー
2016/10/30 12:32
2016/10/30 12:39
退会済みユーザー
2016/10/30 12:41
2016/10/30 13:25
退会済みユーザー
2016/10/30 13:34
2016/10/30 13:41
退会済みユーザー
2016/10/30 13:42