我刚学会了一些html和php的基本技能,希望有人能帮助我。
我创建了一个html文件(a.html),其中包含一个表单,允许学生输入他们的姓名,学生ID,班级和班级编号。
然后,我创建了一个php文件(a.php),将a.html中的信息保存到info.txt文件中,格式如下:
name1,id1,classA,1
name2,id2,classB,24
name3,id3,classA,15
等(上面的部分已经完成没有问题)。
之后我创建了另一个html文件(b.html),要求用户在表单中输入他们的名字和id。
例如,如果用户在表单中输入name2和id2,则php文件(b.php)将打印结果:
班级:classB
班级编号:24
我不知道如何在txt文件中同时匹配name和id,并在b.php中返回结果
答案 0 :(得分:1)
迭代直到你找到匹配为止。例如:
<?php
$csv=<<<CSV
John,1,A
Jane,2,B
Joe,3,C
CSV;
$data = array_map('str_getcsv', explode("\n", $csv));
$get_name = function($number, $letter) use ($data) {
foreach($data as $row)
if($row[1] == $number && $row[2] == $letter)
return $row[0];
};
echo $get_name('3', 'C');
输出:
Joe
答案 1 :(得分:0)
你可以使用一些简单的正则表达式。例如:
<?php
$search_name = (isset($_POST['name'])) ? $_POST['name'] : exit('Name input required.');
$search_id = (isset($_POST['id'])) ? $_POST['id'] : exit('ID input required.');
// First we load the data of info.txt
$data = file_get_contents('info.txt');
// Then we create a array of lines
$lines = preg_split('#\\n#', $data);
// Now we can loop the lines
foreach($lines as $line){
// Now we split the line into parts using the , seperator
$line_parts = preg_split('#\,#', $line);
// $line_parts[0] contains the name, $line_parts[1] contains the id
if($line_parts[0] == $search_name && $line_parts[1] == $search_id){
echo 'Class: '.$line_parts[2].'<br>';
echo 'Class Number: '.$line_parts[3];
// No need to execute the script any further.
break;
}
}
答案 2 :(得分:0)
你可以运行它。我认为这是你需要的。此外,如果你使用帖子,你可以改变发布。
<?php
$name = $_GET['name'];
$id = $_GET['id'];
$students = fopen('info.txt', 'r');
echo "<pre>";
// read each line of the file one by one
while( $student = fgets($students) ) {
// split the file and create an array using the ',' delimiter
$student_attrs = explode(',',$student);
// first element of the array is the user name and second the id
if($student_attrs[0]==$name && $student_attrs[1]==$id){
$result = $student_attrs;
// stop the loop when it is found
break;
}
}
fclose($students);
echo "Class: ".$result[2]."\n";
echo "Class Number: ".$result[3]."\n";
echo "</pre>";
答案 3 :(得分:0)
strpos可以帮助您在文件中找到匹配项。此脚本假定您使用换行符分隔文本文件中的行,并且每个名称/ ID配对在文件中都是唯一的。
function wc_add_custom_order_column_content( $column ) {
global $post, $the_order;
if ( empty( $the_order ) || $the_order->get_id() !== $post->ID ) {
$the_order = wc_get_order( $post->ID );
}
// Only continue if we have an order.
if ( empty( $the_order ) ) {
return;
}
if ( 'custom_column' === $column ) {
// Use order class getters to retrieve what you need.
echo $the_order->get_formatted_order_total();
// Or, if it's not a core field, it may be in meta.
// echo $the_order->get_meta('_some_meta_key');
}
}
add_action( 'manage_shop_order_posts_custom_column', 'wc_add_custom_order_column_content' );
答案 4 :(得分:0)
example data: name1,id1,classA,1 name2,id2,classB,24 name3,id3,classA,15
<?php
$name2 = $_POST['name2'];
$id2 = $_POST['id2'];
$data = file_get_contents('info.txt');
if($name2!='')
$konum = strpos($data, $name2);
elseif($id2!='')
$konum = strpos($data, $id2);
if($konum!==false){
$end = strpos($data, "\n", $konum);
$start = strrpos($data, "\n", (0-$end));
$row_string = substr($data, $start, ($end - $start));
$row = explode(",",$row_string);
echo 'Class : '.$row[2].'<br />';
echo 'Number : '.$row[3].'<br />';
}
?>