0
私は2つの部品ペルシャ語の名前を持っている:محمد رضا
POSTパラメータとしてスペースをエスケープするには?
はまた、私はこのようなHTMLフォームを持っている:
<form class="loginform" action="https://hammihan.com/search.php" method="POST">
<input type="hidden" name="searcher" value="searcher">
<input name="name" value="" type="text">
<input name="family" value="" type="text">
<select name="marriage">
<option>جنسیت</option>
<option value="1">مرد</option>
<option value="2">زن</option>
</select>
<input type="submit" value="جستجو">
<div class="marginbottom"></div>
</form>
私はname
ボタンにそのペルシャ語の名前を書いて、フォームを送信すると、私が表示されます結果(そのベーンに基づいていくつかの結果があります)大丈夫だ。
public function hammihan($request)
{
$val = "حمید رضا";
$url = "https://hammihan.com/search.php";
$data['name'] = $val;
$data['family'] = "";
$data['marriage'] = "جنسیت";
$data['searcher'] = "searcher";
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);// here we are passing $data
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_URL, $url);
$res = curl_exec($handle);
return $res;
}
をしかし、それは何も返しません:
は今、私はPHPで同じことをしたいです。検索エンジンに結果が見つかりません。どうして?私がHTML形式で送信したときに正確な名前が見つかる理由は、PHP経由で送信すると見つからないでしょうか?
$val = utf8_encode('حمید رضا');
$val = urlencode('حمید رضا');
また、私のPHPコードは、単一の部品名にも同様に動作します:
は動作しませんしませんどちらと指摘しました。したがって、問題はのスペースです。
を解決するデフォルトの文字セット
への変更を希望しているあなたは平易な英語テキストを送信するときに、それが正常に動作していると思いますか? – mrid
@mridはい。 。 。それは、いくつかの特定のスペースを除いてすべての場合にうまく動作します。 – stack
あなたはまた、rawurlencode()を試しましたか?誰かがこの関数のmb_バージョンを持っている例では、http://php.net/rawurlencodeを見てください(上の例) –