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

时间:2017-02-03 16:46:28

标签: javascript php

我在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无效

1 个答案:

答案 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 有两个函数stringToHexhexToString可以执行您想要的操作:)

实际上,您提供的网站使用espace函数对邮件进行编码:

document.write(unescape(str.replace(/@/g,'%')));