私は、Twigをテンプレートエンジンとして使用して、Symfony2で簡単なページを開発しています。Twig:URLを2回エンコードしてTwitter共有ボタンに渡します。
私はURLのリストを持っています。私は各URLのTwitter共有ボタンを追加したいと思います。私がしているのは、urls配列の単純なサイクルで、dinaycallyはサイクル内のすべてのTwitterボタンのURLを設定します。 twigが最初にURLをエンコードしているように見え、Twitterのスクリプトが再びそれをエンコードしているようです。だからTwitterのシェアは一致しない。コードは、(サイクル内の)ページの末尾にTwitterのコードの他の部分があると、以下の通りである:
<a href="https://twitter.com/share" class="twitter-share-button" data-url="{{ s.url }}">Tweet</a>
Iがレンダリングされたページに乗るURLは:代わりhttp%253A%252F%252Fwww.example.com%252F
(二符号化パス) http%3A%2F%2Fwww.example.com%2F
(1つのエンコードパス、正しい)。 %
が再び%25
にエンコードされているようです。
これは、2つの異なるURLとみなされているため、これはTwitterのカウント作業にはなりません。
また、いくつかのフィルタを使用しようとしました。 {{ s.url|raw }}
が動作しませんでした。
私の質問です:これを避けるには? twig(またはtwitter)にURLをエンコードしないように指示する方法はありますか?
を小枝処理前s.urlの値は何ですか? (コントローラからのvar_dump) – AlterPHP
コントローラからのvar_dumping、それはhttp%3A%2F%2Fwww.example.com%2F –
です。Twitter APIはわかりませんが、あなたのページにTwitterからのJSファイルを含めることができます。たぶんこのスクリプトはソースコードを解析し、すべてのa.twitter-share-buttonにurlencodeを適用します...コントローラからRaw URLを最初のパスなしでTwigに渡そうとしましたか? – AlterPHP