前提・実現したいこと
PHPです。
mysqlのクエリ結果をfile_get_contentsの()内に入れるとエラーがでます。
同じ文字列を直接書き込んだり、新たに宣言して変数にして()内に入れるとエラー無く表示されます。クエリの結果をそのまま、もしくは、一度変数に置き換えてもエラーがでます。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in /home/***** エラー行 $data = file_get_contents($title2);
該当のソースコード
PHP
1 2$sql3 = "SELECT * FROM AAA WHERE `title` like '" . $title . "' LIMIT 0 , 1"; 3$stmt3 = $pdo->query($sql3); 4 5while($rs3 = $stmt3->fetch(PDO::FETCH_ASSOC)){ 6 7$img = $rs3['thumb']; 8if($img==""){ 9 10//$title = "車"; このように同じ文字列でも代入するとエラーはでません。 11//$title2 = "https://www.google.co.jp/search?q=" . $title . "&tbm=isch"; 12$title2 = "https://www.google.co.jp/search?q=$title&tbm=isch"; 13$data = file_get_contents($title2); 14$data = explode( "\n", $data ); 15$cnt = count( $data ); 16for( $i=0;$i<$cnt;$i++ ) 17{ 18echo($data[$i]); 19} 20 21
試したこと
試したことは、()内を出力してみてなにか変な事になっていないか?は試しましたが一見おかしな所はないように思えました。
//の部分はこれも試したという部分です。
※追記やりたいことの説明を説明いたします。
やりたいこととソースの流れをご説明させていただきます。
$sql3 = "SELECT * FROM AAA WHERE title
like '" . $title . "' LIMIT 0 , 1";
$stmt3 = $pdo->query($sql3);
while($rs3 = $stmt3->fetch(PDO::FETCH_ASSOC)){
$img = $rs3['thumb'];
if($img==""){
データーベースの中からタイトルを検索し、そのタイトルに画像$rs3['thumb']が無い場合
下記の処理に移ります。
$title2 = "https://www.google.co.jp/search?q=$title&tbm=isch";
↑次の行のfile_get_contentsでエラーが出たため()内の状態を見る為に一度$title2に代入してみました。
echo やvar_dumpでも確認しましたが、 所はなかったです。
$data = file_get_contents($title2);←エラーがでます。
もしエラーが出なければ、検索結果のページを表示したいです。
$data = explode( "\n", $data );
$cnt = count( $data );
for( $i=0;$i<$cnt;$i++ )
{
echo($data[$i]);
※
$title2 = "https://www.google.co.jp/search?q=$title&tbm=isch";
この状態ではエラーがますが
$title2 = "https://www.google.co.jp/search?q=車&tbm=isch";
上記のように変数を入れなければエラーがでません
また、
$title = "車";
$title2 = "https://www.google.co.jp/search?q=$title&tbm=isch";
のように直前で宣言した場合でもエラーはでません。
※※
この$titleは直前に下記の様な方法で取得しております。
while($rs2 = $stmt2->fetch(PDO::FETCH_ASSOC)){
// 1行ごとに$rsにデータが入ります
$title = $rs2['title'];
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー