//post data
$post = $_POST['username'];
//str replace
$print = str_replace([1,2,3,4,5], ['4A','6B','7C','2D','6F'], $post);
//prints result
echo "{"username":"" . $print . ""}";
str-replacement在只是alpha时工作得很好(例如:TEST!@#test = 7160767124452671607671
,它只是完美的,但一旦数字开始发挥作用,事情就会变得混乱$print
应该输出{"username":"4A6B7C2D6F"}
,如果输入12345
,则当前输出为{"username":"2DA6B7C2D6F"}
欢迎使用StackOverflow!
我在PHP.net的官方文档中找到了一些关于您问题的信息。
注意
收到替换订单
由于str_replace((从左到右进行替换,因此它可能会替换进行多次替换时先前插入的值。另请参阅本文档中的示例。
在您的情况下,它首先用4A
替换1
,然后用2D
替换4A
中的4
,得到2DA
,然后它似乎正确地替换了所有内容。
编码快乐!
编辑:如Paul的回答所示使用strtr将得到您想要的结果。