Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>BF</title>
- </head>
- <body>
- <form action="index.php">
- <textarea name="textinput" placeholder="Enter bf code here"></textarea><br>
- <input type="text" name='text' placeholder="Enter prmtrs here"><br>
- <button>g</button>
- </form>
- </body>
- </html>
- <?php
- //echo $_REQUEST['text'];
- $data = $_REQUEST['textinput'] ?? ''; //данные, которые вводим
- $params = $_REQUEST['text'] ?? '';
- $chain = array(0); //хранение результата
- $cell = 0; //текущий элемент
- $source = str_split($data); //преобразование в массив данных
- $params_array = str_split($params);
- $index_for_params = 0;
- $brackets = 0;
- //echo count($data_array);
- for($i=0; $i<count($source); ++$i) {
- switch($source[$i]) {
- case "+" :
- // увеличиваем значение текущей ячейки
- $chain[$cell]++;
- break;
- case "-" :
- // уменьшаем значение текущей ячейки
- $chain[$cell]--;
- break;
- case "." :
- // выводим символ
- print chr($chain[$cell]);
- break;
- case "," :
- // считать символ из STDIN
- $chain[$cell] = ord($params_array[$index_for_params++]);
- break;
- case ">" :
- // переход к следующей ячейке
- $cell++;
- if(!isset($chain[$cell])) {
- $chain[$cell] = 0;
- }
- break;
- case "<" :
- // переход к предыдущей ячейке
- $cell--;
- if(!isset($chain[$cell])) {
- $chain[$cell] = 0;
- }
- break;
- case "[" :
- // начало цикла
- if(!$chain[$cell]) {
- $brackets = 1;
- while($brackets) {
- $i++;
- if($source[$i] == "[") {
- // был открыт вложенный цикл
- $brackets++;
- } else if($source[$i] == "]") {
- // цикл закрыт
- $brackets--;
- }
- }
- }
- break;
- case "]" :
- // конец цикла
- if($chain[$cell]) {
- $brackets = 1;
- while($brackets) {
- $i--;
- if($source[$i] == "]") {
- // был закрыт вложенный цикл
- $brackets++;
- } else if($source[$i] == "[") {
- // цикл открыт
- $brackets--;
- }
- }
- }
- break;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement