将javascript字符串替换函数转换为php
我在网站上发现了一个非常基本的javascript函数来编码文本。查看源代码,这是字符串替换代码:将javascript字符串替换函数转换为php,javascript,php,Javascript,Php,我在网站上发现了一个非常基本的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"); 但是
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
不起作用替换字符
事实上,PHP函数是str_replace
(有许多替换函数)。但是,regex
表达式不同:)
见正式文件:
在您的情况下,您希望将字母%
替换为@
g
是一个正则表达式标志。和/
是用于激活正则表达式模式的分隔符:)
“g”标志表示应针对字符串中所有可能的匹配项测试正则表达式。如果没有g标志,它将只测试第一个
。替换(/%/g,@')
仅将%
字符替换为@
,因此它对stackoverflow
字符串不起任何作用。你应该发布你的js的其余部分,以便追踪到底是什么在起作用。:)谢谢你的帮助,我已经尝试了你的脚本,但是它只在字符串中将%替换为@。该站点中的脚本将字母“a”替换为“@61”,将符号“%”替换为“@25”,依此类推,这就是php脚本应该做的事情。我用转义问题的解决方案编辑了我以前的回复:)
<?php
echo str_replace('%', '@', '%73%74%61%63%6B%6F%76%65%72%66%6C%6F%77');
?>
document.write(unescape(str.replace(/@/g,'%')));