我有一个PHP文件,它执行一些基本的txt文件操作,并且我将相同的操作应用于我的所有HTML页面,但有一些非常小的差异。我的问题是,是否有办法添加一些循环或其他解决方案来解决所有这些代码的重复:
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并重定向到另一个页面。
提前谢谢你!
发布于 2018-05-22 23:11:17
您重复的代码中唯一的变化是一个数字。只需将一个数字添加到您的提交值中,并使用该数字进行修改:
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");
}
}
发布于 2018-05-22 23:08:00
您可以将以下逻辑保留在函数中,并在提交特定页面时使用一些参数调用该函数
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);
}
发布于 2018-05-22 23:27:27
你可以创建一个函数,切换大小写,并根据大小写的值传递函数的数据,就像这样。
$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
}
https://stackoverflow.com/questions/50470927
复制相似问题