首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP使用循环来避免代码的重复

PHP使用循环来避免代码的重复
EN

Stack Overflow用户
提问于 2018-05-22 23:02:53
回答 3查看 100关注 0票数 0

我有一个PHP文件,它执行一些基本的txt文件操作,并且我将相同的操作应用于我的所有HTML页面,但有一些非常小的差异。我的问题是,是否有办法添加一些循环或其他解决方案来解决所有这些代码的重复:

代码语言:javascript
运行
复制
     if(isset($_POST['submit'])){


                $second_page_array = file("data/data1.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
                $final_array = [];

                //some shortening of the code
                foreach($first_page_array as $key=>$first_page){
                   $final_array[] = $first_page.''.$second_page_array[$key].''.$ranks_array[$key].''.$time_array[$key]."\n";
                }

                file_put_contents('output.txt',$final_array, FILE_APPEND | LOCK_EX);

                header("Location: main2.html");
              }

     if(isset($_POST['submit2'])){


                $second_page_array = file("data/data2.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
                $final_array = [];

                //some shortening of the code
                foreach($first_page_array as $key=>$first_page){
                   $final_array[] = $first_page.''.$second_page_array[$key].''.$ranks_array[$key].''.$time_array[$key]."\n";
                }

                file_put_contents('output.txt',$final_array, FILE_APPEND | LOCK_EX);

                header("Location: main3.html");
              }

    if(isset($_POST['submit3'])){


            $second_page_array = file("data/data3.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
            $final_array = [];

            //some shortening of the code
            foreach($first_page_array as $key=>$first_page){
               $final_array[] = $first_page.''.$second_page_array[$key].''.$ranks_array[$key].''.$time_array[$key]."\n";
            }

            file_put_contents('output.txt',$final_array, FILE_APPEND | LOCK_EX);

            header("Location: main4.html");
          }

所以,改变的是submit会递增,data.txt并重定向到另一个页面。

提前谢谢你!

EN

回答 3

Stack Overflow用户

发布于 2018-05-22 23:11:17

您重复的代码中唯一的变化是一个数字。只需将一个数字添加到您的提交值中,并使用该数字进行修改:

代码语言:javascript
运行
复制
if (isset($_POST['submit'])) {
    $num = $_POST['submit'];
    $location = 'main'.$num+1.'.html';


    $second_page_array = file("data/data$num.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    $final_array = [];

    //some shortening of the code
    foreach($first_page_array as $key=>$first_page){
       $final_array[] = $first_page.''.$second_page_array[$key].''.$ranks_array[$key].''.$time_array[$key]."\n";
    }

    file_put_contents('output.txt',$final_array, FILE_APPEND | LOCK_EX);

    header("Location: $location");
  }
}
票数 1
EN

Stack Overflow用户

发布于 2018-05-22 23:08:00

您可以将以下逻辑保留在函数中,并在提交特定页面时使用一些参数调用该函数

代码语言:javascript
运行
复制
function callPage()
{
    $second_page_array = file("data/data3.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
        $final_array = [];

        //some shortening of the code
        foreach($first_page_array as $key=>$first_page){
           $final_array[] = $first_page.''.$second_page_array[$key].''.$ranks_array[$key].''.$time_array[$key]."\n";
        }

        file_put_contents('output.txt',$final_array, FILE_APPEND | LOCK_EX);

        header("Location: main4.html");
}

//Example:
if($_POST[submit1])
{
  echo callPage(1);
}
票数 0
EN

Stack Overflow用户

发布于 2018-05-22 23:27:27

你可以创建一个函数,切换大小写,并根据大小写的值传递函数的数据,就像这样。

代码语言:javascript
运行
复制
$submit = $_POST[submitvalue];
switch($submit){
    case 'submit':
         $file = data.txt;
         $headerLocation: file.html;
         functionName($file,$file);
         break;
    case 'submit1':
         $file = data1.txt;
         $headerLocation: file1.html;
         functionName($file,$file);
         break;
}

functionName(arg1,arg2){
    // do yours stuff here
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50470927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档