0

というわけで、Twitter API 1.1 $connection->post を使ってつぶやきを送信しています。問題は、ツイート文字列にアポストロフィなどの特殊文字がある場合です。

$vinedesc = 'News Reporter's reaction';
$connection->post('statuses/update', array('status' => $vinedesc));

ツイートは、次のような HTML エンティティを含むツイートです。

 News Reporter's reaction

どうすればこれを防ぐことができますか? 誰かが rawurldecode を提案しましたが、以下は機能しません。コンテキストを考えると、正しく使用していないと思います。

$vinedescraw = 'News Reporter's reaction';
$vinedesc = rawurldecode($vinedescraw);
$connection->post('statuses/update', array('status' => $vinedesc));

助言がありますか?

4

3 に答える 3

1

私の場合、ソース文字列に既に HTML 文字が埋め込まれていることはわかっていましたが、同様の問題がありました。問題を即座に解決する PHP サイト ( http://php.net/manual/en/function.html-entity-decode.php ) でこの変換を見つけました。

$vinedesc=preg_replace_callback("/(&#[0-9]+;)/", function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); }, $vinedescraw); 

Norman Bird's answer で述べたように、UTF-8 に変換するとうまくいきました。

于 2016-01-27T16:23:34.643 に答える
0

私は同じ問題を抱えていました.addslashes()、htmlentities、およびすべてのエンコードを試した後です。Twitter は、ファイル タイプを ANSI などではなく、UTF-8 にすることを好むことがわかりました。:-) これで、引用符とアポストロフィは問題ありません。

于 2014-08-20T00:25:51.957 に答える
0

この線:

$vinedescraw = 'News Reporter's reaction';

構文エラーがあります。次のようにする必要があります。

$vinedescraw = 'News Reporter\'s reaction';

さらに、rawurlencode() を 'News Reporter's reaction'引数として使用するか、rawurldecode () を引数として使用する必要があります。

'News Reporter's reaction'

引数として、一方から他方に変更します。

于 2013-09-18T23:06:11.897 に答える