Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将一段javascript代码转换为php_Javascript_Php - Fatal编程技术网

将一段javascript代码转换为php

将一段javascript代码转换为php,javascript,php,Javascript,Php,嗨,我正在尝试将javascript代码转换为php。下面是javascript代码 <script> var prefs = '["w",32,"r","s",2,"w",65,"w",26,"w",45,"w",24,"w",40,"s",2]'; var si = "hellocode"; var sig = (si + "").split(""); function swap(arr, b) { l3 = arr[0];

嗨,我正在尝试将javascript代码转换为php。下面是javascript代码

<script>

 var prefs = '["w",32,"r","s",2,"w",65,"w",26,"w",45,"w",24,"w",40,"s",2]';
var si = "hellocode";
var sig = (si + "").split("");

          function swap(arr, b) {
              l3 = arr[0];
              l4 = arr[b % arr.length];
              arr[0] = l4;
              arr[b] = l3;
              return arr
          }

          var cmd = JSON.parse(prefs||'["r","r"]');

          cmd.forEach(function (c, i) {
            if (typeof c !== "string") {
              return;
            }
            switch (c) {
            case "r":
              sig = sig.reverse();
              break;
            case "s":
              sig = sig.slice(cmd[i+1]);
              break;
            case "w":
              sig = swap(sig, cmd[i+1]);
              break;
            }
          });

</script>

变量prefs='[“w”,32,“r”,“s”,2,“w”,65,“w”,26,“w”,45,“w”,24,“w”,40,“s”,2];
var si=“hellocode”;
var sig=(si+).split(“”);
功能交换(arr,b){
l3=arr[0];
l4=arr[b%arr.length];
arr[0]=l4;
arr[b]=l3;
返回arr
}
var cmd=JSON.parse(prefs | |'[“r”,“r”]);
cmd.forEach(函数(c,i){
如果(c的类型!=“字符串”){
返回;
}
开关(c){
案例“r”:
sig=sig.reverse();
打破
案例“s”:
sig=sig.slice(cmd[i+1]);
打破
案例“w”:
sig=swap(sig,cmd[i+1]);
打破
}
});
到目前为止,我在php中尝试了什么

<?php

$prefs = '["w",32,"r","s",2,"w",65,"w",26,"w",45,"w",24,"w",40,"s",2]';
$si = "hellocode";
$arr = str_split($si);
$sig = implode(',', $arr);


          function swap($arr, $b) {
              $cool = explode(",",$arr);
              $l3 = $cool[0];
              $l4 = $cool[$b % length($cool)];
              $cool[0] = $l4;
              $cool[$b] =$l3;
              return $cool;
          }
  //   $cool  = json_decode($prefs||'["r","r"]'); 
  //now i am struck with converting $prefs to array

$i=0;
foreach($cool as $c)
{

// how to get type of string here ?
// And what does slice function do ?
}
在PHP中,必须检查变量是否为字符串

提取数组的一部分(在JS中),PHP挂件在处理数组或字符串时使用

您已经找到了,请查看手册中的示例。
您必须将
prefs | |“[“r”,“r”]”拆分为
if-else
,以检查
prefs
是否为空,但我不知道在这种情况下PHP如何处理or运算符

要将
.forEach
从JS转换为PHP,我不会选择
forEach(…)
,因为您无法像在JS回调中那样访问
i
。在这里使用一个简单的for循环

for($i = 0; $i < count($cool); $i++) { /*....*/ }
for($i=0;$i
检查变量是否为字符串;无论如何,array.slice将返回包含在两个参数之间的数组元素。(为学校感到抱歉)。如果省略第二个参数,它将从数组的开始到结束。也就是说,如果从1分割数组,它将返回从1到数组末尾(到array.length)的所有元素。实际上,php中的array.slice等效于函数array_slice:hey thanking:)如何将$prefs转换为array?好吧,我不是json中的神,但由于它是json字符串,所以您应该使用json_decode获得解决方案!嘿,谢谢:)什么是| |'[“r”,“r”];你在这儿干什么?json_解码出错,只是编辑了它。JS是这样处理的:如果prefs不存在,则将
'[“r”,“r”]
作为输入。它访问索引为
i+1
的数组
cmd
(不增加
i
)。您可以通过编写
$cool[i+1]
来转换它,只要您有一些变量
i
,最好是从循环中转换,就像JS所做的那样-尝试在