此PHP代码有什么问题?

RSM*_*RSM 1 php

$regular = explode(',', "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z");
$custom =  explode(',', "y,p,l,t,a,v,k,r,e,z,g,m,s,h,u,b,x,n,c,d,i,j,f,q,o,w");
$albhed1 = str_replace($regular, $custom, $input);?><div id="hi"><?php
if($_POST['albhed']){echo $albhed1;}{}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当用户单击发送时,该字母不代表应有的含义。因此,如果键入a,则应显示y,如果键入c,则应显示l。奇怪的是,它适用于字母u,v,w,x,y,z,即i,j,f,q,o,w,但其余部分不起作用。

$ input正在定义:

<textarea name="textarea" id="textarea">
 </textarea>
Run Code Online (Sandbox Code Playgroud)

有没有人有什么建议?

Lek*_*eyn 5

您的代码无法正常工作,原因$res = str_replace(array("x", "y"), array("y", "b"), $input)如下:

$res = str_replace("x", "y", $input);
$res = str_replace("y", "b", $input);
Run Code Online (Sandbox Code Playgroud)

认为它的意思xyz变成bbb是因为:

  1. xyz 转换为 yyz
  2. yyz 翻译成 bbz

您最好使用来翻译字符strtr

$regular = "abcdefghijklmnopqrstuvwxyz";
$custom =  "ypltavkrezgmshubxncdijfqow";
$albhed1 = strtr($input, $regular, $custom);
Run Code Online (Sandbox Code Playgroud)