0

curlに問題があります:ascii HEXでコード化されたウムラウトを使用してMysql(都市名)からデータを取得します(たとえば、ßの場合は%DF、üの場合は%DC)。str_replace();で変換します。ドイツのウムラウト(ß、ü、ä、ö)へ。データ(都市)をcurlで送信すると、エラーが発生します。(「正しいものから入力してください!」)

ウムラウト(ä、ö、ü、ß)なしでデータを送信すると、すべて問題ありません。私のコードまたはcurlの何が問題になっていますか。私もシェルで試してみました-同じ問題です!

$this->url = "blah.org/?params=diesdas&city_from=Straßbourg&City_to=München";

$this->ckfile = tempnam("/tmp", "cookie");
$this->ch = curl_init();
curl_setopt($this->ch,CURLOPT_URL, $this->url);
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($this->ch, CURLOPT_PROXY, "46.4.248.80");
curl_setopt($this->ch, CURLOPT_PROXYPORT, "3128");
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($this->ch, CURLOPT_COOKIEJAR, $this->ckfile);
echo 'getting cookie file...';
$cookie = curl_exec($this->ch);
if($cookie = false){echo 'couldn\'t get cookie!<br> '.curl_error($this->ch);}else{echo 'got cookie! omnomnom!<br>';}

$this->ch = curl_init("blah.com/sendcookietome");
curl_setopt($this->ch, CURLOPT_COOKIEFILE, $this->ckfile);
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($this->ch, CURLOPT_PROXY, "46.4.248.80");
curl_setopt($this->ch, CURLOPT_PROXYPORT, "3128");
curl_exec($this->ch);

最高、meeeeeh!

4

3 に答える 3

0

私はそれを機能させました:wow.wtf?

このリンクは「ß」で機能します:blah.org/&from_spar=Straßburg&to_spar=Kiel+Hbfblah.org/&from_spar=Köln+Hbf&to_spar=Stuttgart+Hbf

それが受け入れられる方法です。

于 2012-07-06T09:32:18.853 に答える
0

GETまたはPOSTデータで文字を使用する場合は、文字をURLエンコードする必要があります。それらをデコードしないでください。

于 2012-07-03T20:03:56.570 に答える
0

あなたの都市にはrawurlencode()を使用してください。

http://php.net/manual/en/function.rawurlencode.php

また、あなたはそこの形のためにストラスブールのつづりを間違えました… 。

あなたの例では:

$cityname =rawurlencode('Straßburg');

$url ='http://bahn.ltur.com/index/search/?mnd=de&lang=de_DE&searchin=DE-SB-VI&trip_mode=trip_simple&from_spar='.$cityname.'&to_spar=Haiger&start_datum=04.07.2012&start_time=06%3A30&end_datum=06.07.2012&end_time=16%3A42&SEA_adults=1&SEA_kids1=0&SEA_kids2=0&SEA_adult1=&SEA_adult2=&SEA_adult3=&SEA_adult4=&SEA_adult5=&SEA_kid11=&SEA_kid12=&SEA_kid13=&SEA_kid14=&SEA_kid15=&trainclass_spar=2&x=54&y=15
';

//do your curl thing..
于 2012-07-04T14:50:07.930 に答える