簡體   English   中英

將一段JavaScript代碼轉換為php

[英]converting piece of javascript code to php

嗨,我正在嘗試將javascript代碼轉換為php.below是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>

到目前為止我在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 ?
}

我被第二部分打中了嗎? 請查看評論和js到php的一些專家..請指導我。:)

在PHP中,您可以使用is_string來檢查變量是否為字符串。

slice提取數組的一部分(在JS中),當使用數組時,PHP吊墜是array_slice ,當使用字符串時,是substr

您已經找到了json_decode ,因此只需看一下手冊中的示例。
您最大必須將prefs||'["r","r"]'拆分為if-else以檢查prefs是否不為空,但是在這種情況下,我不知道PHP如何處理or-operator。

要將.forEach從JS轉換為PHP,我不會使用foreach(...) ,因為您將無法像JS回調中那樣訪問i 在這里使用一個簡單的for循環。

for($i = 0; $i < count($cool); $i++) { /*....*/ }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM