我在this网站找到了一个非常基本的javascript函数来编码文本。查看源代码,这是字符串替换代码:
txtEscape = txtEscape.replace(/%/g,'@');
因此字符串stackoverflow
变为@73@74@61@63@6B@6F@76@65@72@66@6C@6F@77
我需要一个在php中执行相同基本加密的函数,但我真的不明白/%/g
的作用。我认为在php中,相同的功能可能是:
str_replace(/%/g,"@","stackoverflow");
但当然/%/g
无效
答案 0 :(得分:1)
实际上,PHP函数是str_replace
(有许多替换函数)。但是,regex
表达式并不相同:)
请参阅官方文档:http://php.net/manual/en/function.str-replace.php
在您的情况下,您希望用%
替换字母@
。
g
是一个正则表达式标志。并且//
是分隔符以激活正则表达式模式:)
" g" flag表示应针对字符串中的所有可能匹配测试正则表达式。没有g标志,它只会测试第一个。
<?php
echo str_replace('%', '@', '%73%74%61%63%6B%6F%76%65%72%66%6C%6F%77');
?>
在PHP中,您可以使用带有正则表达式的标志:preg_replace
&amp; CIE。
查看此帖子:PHP equivalent for javascript escape/unescape
有两个函数stringToHex
和hexToString
可以执行您想要的操作:)
实际上,您提供的网站使用espace
函数对邮件进行编码:
document.write(unescape(str.replace(/@/g,'%')));