将javascript字符串替换函数转换为php

将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"); 但是

我在网站上发现了一个非常基本的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
不起作用

替换字符 事实上,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,'%')));