質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

3653閲覧

【PHP】空白を含むURLのページを file_get_contents() で読み込みたい

og24715

総合スコア832

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/02/10 08:35

あるWebAPIの利用するために
file_get_contents() を使おうと思ったところ、URLのパラメータに空白が含まれるとき、空白以降が切り捨てられたような動作をします。
urlencode() したURLを引数にしても動作は同じでした。
どうしたらよいでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

初投稿ですが、こういう方法はどうでしょうか。
説明は#に書いてあります。

function encode_file_url($url){
#parse_urlでscheme、host、pathに分解する。
$parts = parse_url($url);
#さらにpathの方をコールバック関数rawurldecodeで解析して細かく分解する。
$path_parts = array_map('rawurldecode', explode('/', $parts['path']));
#最後は全てのパーツを文字列に戻す。
return $parts['scheme'] . '://' . $parts['host'] . implode('/', array_map('rawurlencode', $path_parts));
}

echo encode_file_url("http://example.com/ex/am ple/some file name.html");
echo encode_file_url("http://example.com/ex/am%20ple/some%20file%20name.html");
echo encode_file_url("http://example.com/ex/am+ple/some+file+name.html");

以上の3つのパターンで試しました。

半角空白のraw urlが「%20」になりますので、
もしurlが動的ではない場合、直接%20を書き替えても大丈夫と思います。

投稿2016/02/10 09:34

編集2016/02/10 09:53
ArbieDev

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問