0

VARCHAR(300)MySQL データベースのようにテキストのブロックを保存しています。ユーザーはテキストエリアを介してこのテキストを投稿し、mysql_real_escape_string挿入前にエスケープします。

次に、このテキストを取得し、次の PHP コードを使用して CURL 経由で投稿します。

curl_setopt($curl_handlers[$id], CURLOPT_POSTFIELDS, array("Text" => $text));

唯一の問題は、受信 URL が改行が としてエンコードされることを期待していること%0aです。改行は\r\nMySQLのように保存されていると思います。

%0aCURL 経由でテキストを投稿する前に、MySQL に保存されている改行を確実に変換するにはどうすればよいですか?

4

2 に答える 2

0

urlencode変数が必要なようです。

$urlencoded_text = urlencode( $text );
curl_setopt($curl_handlers[$id], CURLOPT_POSTFIELDS, array("Text" => $urlencoded_text ));

ただし、 ( => , => )\r\nに変換されるため、本当に改行のみを送信する場合は、クリーンアップする必要がある場合があります。%0D%0A\r%0D\n%0A%0A

アップデート:

\r\n単純に\nPHP のstr_replace関数を使用して変換するには、次のようにします。

$text = str_replace( "\r\n", "\n", $text );

を解釈するには二重引用符が必要であることに注意してください\r\n

それで:

$urlencoded_text = urlencode( $text );

$urlencoded_text%0Aの代わりにのみが含まれるようになりました\r\n

于 2013-10-22T20:05:51.703 に答える