【发布时间】:2020-03-09 12:20:20
【问题描述】:
我缺乏对 RegEx 的基本了解,但是我的任务是使用 preg_replace 将这个 perl sn-p 转换为 php,我无法弄清楚如何让它正常运行,因为我无法弄清楚如何正确地转义正则表达式字符串进入 php 中的 var。
sub rssEnc {
my $DATA=shift;
my %tr=(
"'" => '"',
"" => '"',
'"' => '"',
'&' => '&',
'$' => '$',
'<' => '<',
'>' => '>',
'' => '''
);
$DATA=~s/(&(?!(#\w*|quo|apo|amp|lt|gt);)|["'\<\>\$])/$tr{$1}/g;
$DATA=~s/[^\x{21}-\x{7E}\s\t\n\r]//g;
return $DATA;
}
【问题讨论】:
-
好吧,只需将
%tr更改为 PHP 数组并运行strtr()或为此只需 php.net/manual/en/function.htmlentities.php。 -
我曾尝试在此运行 htmlentities,但我的输出显示为空白,这很奇怪。输入来自 pdo 调用的 db 字段。但是如果我从一个字符串中给它提供数据,它会做它应该做的事情。