0

我正在抓取一个站点并提取一些具有特殊字符的产品内容,例如® 特殊字符在浏览器中显示得很好,但它们弄乱了我的 Omniture 标签,特别是 s.products 标签。s.products 变量用分号划分其部分,每个产品共有 6 个部分(s.products="Category";"Product name";"Quantity";"Total Price";"Incrementor";" Merchandising”)。如果产品®的名称中有,则在 s.products 变量字符串中添加一个额外的分号。这会将字符串中的所有内容都弄乱,并将字符串中的所有内容都向右移动,从而影响数量和价格。

有没有办法对产品名称使用 URL 编码,以便将其®转换为%AE? 我尝试了 rawurlencode 和 htmlspecialchars 函数,但它们不起作用

4

1 回答 1

0

同时使用html_entity_decodeurlencode

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 回答