0

Webサイトで使用するAPIを作成しました。

私が作成したAPIは、mysql_real_escape_stringを使用してすべてを取り除き、それをデータベースに配置します。

しかし、私が抱えている問題は、私のphpスクリプトがAPIにアクセスするために使用しているURLが時々短くなることです...

パラメータの1つに絞り込みました...

Ford Mondeo 22'の場合、simplexml_load_fileに渡されるURLは次のとおりです。


http://mydomain.com/api/create.xml?api_number=brho15p6z1dhqwf5tsff&env=live&number=AJ20023232&title=Ford Mondeo 22'&image = http://mydomain.com/wp-content/uploads/2012/10/914955-150x150。 jpg


しかし、APIはアクセスされたURLを次のように報告します


http://mydomain.com/api/create.xml?api_number=brho15p6z1dhqwf5tsff&env=live&number=AJ20023232&title=Ford


一重引用符を削除すると、すべてが正常に機能します。これを修正する方法については、URLで変数を渡すときに見落としていることがあると思います。

4

1 に答える 1

2

問題を引き起こしているのは、「FordMondeo22'」値のスペースです。URLにスペースを含めることはできません。エスケープ文字を使用する必要があります。パラメータのエンコードされたバージョンは次のようになります

フォード%20Mondeo%2022 '

%20はスペースのエスケープ文字です

つまり、URL全体は次のようになります。

http://mydomain.com/api/create.xml?api_number=brho15p6z1dhqwf5tsff&env=live&number=AJ20023232&title=Ford%20Mondeo%2022'&image=http://mydomain.com/wp-content/uploads/2012/10/914955-150x150.jpg

編集: あなたのコメントはあなたがPHPを使用していることを示しています。PHPでは、urlencode($ foo)とurldecode($ foo)を使用して、通常の文字列とエンコード文字列を切り替えることができます。

于 2012-10-16T12:46:07.093 に答える