0

サイトをスクレイピングして、次® のような特殊文字を含む製品コンテンツを取得しています。特殊文字はブラウザーでは問題なく表示されますが、Omniture タグ、特に s.products タグが台無しになります。s.products 変数はセクションをセミコロンで区切り、製品ごとに合計 6 つのセクションがあります (s.products="Category";"Product name";"Quantity";"Total Price";"Incrementor";")。製品の®名前に含まれている場合、余分なセミコロンが s.products 変数文字列に追加されます. これにより、すべてが混乱し、文字列内のすべてが右にシフトし、数量と価格に影響します.

®が に変換されるように、製品名に URL エンコーディングを使用する方法はあります%AEか? rawurlencode および htmlspecialchars 関数を試しましたが、機能しませんでした

4

1 に答える 1

0

との両方html_entity_decodeを使用しurlencodeます。

php > echo urlencode(html_entity_decode("®"));
%AE

または、すべての htmlentities を正規表現で置き換えることができます。

$pattern = "/&\w+;/";
$callback = function($matches) {
    return urlencode(html_entity_decode($matches[0]));
};
$subject = "® ©";
echo preg_replace_callback($pattern, $callback, $subject); // %AE %A9
于 2012-08-24T16:20:09.903 に答える