数据表:CREATE TABLE `student` (
`id` int(10) unsigned NOT NULL auto_increment,
`xid` varchar(20) NOT NULL,
`name` varchar(20) NOT NULL,
`email` varchar(100) NOT NULL,
`address` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
postdemo.php<?php
// 连接数据库
$conn=@mysql_connect("数据库ip","帐号","密码") or die(mysql_error());
@mysql_select_db('数据库名',$conn) or die(mysql_error()); $action = isset($_REQUEST['action'])? $_REQUEST['action'] : '';if($action=='add'){
$xid = isset($_POST['xid'])? mysql_escape_string($_POST['xid']) : '';
$name = isset($_POST['name'])? mysql_escape_string($_POST['name']) : '';
$email = isset($_POST['email'])? mysql_escape_string($_POST['email']) : '';
$address = isset($_POST['address'])? mysql_escape_string($_POST['address']) : ''; if($xid=='' || $name=='' || $email=='' || $address==''){
echo 'please input data';
exit();
} $sqlstr = "insert into student(xid,name,email,address) values('".$xid."','".$name."','".$email."','".$address."')";
mysql_query($sqlstr) or die(mysql_error()); header('location:postdemo.php');}else{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>demo</title>
</head> <body>
<form name="form1" method="post" action="postdemo.php">
<p>学生id:<input type="text" name="xid"></p>
<p>学生名字:<input type="text" name="name"></p>
<p>学生邮箱:<input type="text" name="email"></p>
<p>学生地址:<input type="text" name="address"></p>
<p><input type="hidden" name="action" value="add"><input type="submit" name="b1" value="提交"></p>
</form> <?php
$sqlstr = "select * from student order by id";
$query = mysql_query($sqlstr) or die(mysql_error());
$result = array();
while($thread=mysql_fetch_assoc($query)){
$result[] = $thread;
} if($result){
echo '<table>';
echo '<th>NO</th><th>学生id</th><th>学生名字</th><th>学生邮箱</th><th>学生地址</th>';
foreach($result as $row){
echo '<tr>';
echo '<td>'.$row['id'].'</td>';
echo '<td>'.$row['xid'].'</td>';
echo '<td>'.$row['name'].'</td>';
echo '<td>'.$row['email'].'</td>';
echo '<td>'.$row['address'].'</td>';
echo '</tr>';
}
echo '</table>';
} ?>
</body>
</html>
<?php
}
?>
`id` int(10) unsigned NOT NULL auto_increment,
`xid` varchar(20) NOT NULL,
`name` varchar(20) NOT NULL,
`email` varchar(100) NOT NULL,
`address` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
postdemo.php<?php
// 连接数据库
$conn=@mysql_connect("数据库ip","帐号","密码") or die(mysql_error());
@mysql_select_db('数据库名',$conn) or die(mysql_error()); $action = isset($_REQUEST['action'])? $_REQUEST['action'] : '';if($action=='add'){
$xid = isset($_POST['xid'])? mysql_escape_string($_POST['xid']) : '';
$name = isset($_POST['name'])? mysql_escape_string($_POST['name']) : '';
$email = isset($_POST['email'])? mysql_escape_string($_POST['email']) : '';
$address = isset($_POST['address'])? mysql_escape_string($_POST['address']) : ''; if($xid=='' || $name=='' || $email=='' || $address==''){
echo 'please input data';
exit();
} $sqlstr = "insert into student(xid,name,email,address) values('".$xid."','".$name."','".$email."','".$address."')";
mysql_query($sqlstr) or die(mysql_error()); header('location:postdemo.php');}else{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>demo</title>
</head> <body>
<form name="form1" method="post" action="postdemo.php">
<p>学生id:<input type="text" name="xid"></p>
<p>学生名字:<input type="text" name="name"></p>
<p>学生邮箱:<input type="text" name="email"></p>
<p>学生地址:<input type="text" name="address"></p>
<p><input type="hidden" name="action" value="add"><input type="submit" name="b1" value="提交"></p>
</form> <?php
$sqlstr = "select * from student order by id";
$query = mysql_query($sqlstr) or die(mysql_error());
$result = array();
while($thread=mysql_fetch_assoc($query)){
$result[] = $thread;
} if($result){
echo '<table>';
echo '<th>NO</th><th>学生id</th><th>学生名字</th><th>学生邮箱</th><th>学生地址</th>';
foreach($result as $row){
echo '<tr>';
echo '<td>'.$row['id'].'</td>';
echo '<td>'.$row['xid'].'</td>';
echo '<td>'.$row['name'].'</td>';
echo '<td>'.$row['email'].'</td>';
echo '<td>'.$row['address'].'</td>';
echo '</tr>';
}
echo '</table>';
} ?>
</body>
</html>
<?php
}
?>
post的文件名:good.txt
文件内容:
001
王军
[email protected]
山东省青岛市滨海路2号请问专家,后台的接收代码是不是有变化?
使用php怎么模拟post good.txt文件给后台?
先在此谢过啦
<?php
$content = file_get_contents('php://input');
?>
例如:post的文件名:good.txt,文件内容
001
王军
[email protected]
山东省青岛市滨海路2号由于是远程客户端直接post good.txt文件,所以提交的数据没有变量名,而是直接的字符串,是不是不能用$_POST接收?
下面的例子将完成php post文件流,接收文件流,分析文件流,写入数据库四个步骤
1.conn.php 用于连接数据库
2.list.php 用于显示数据库表记录
3.add.php 用于接收流文件并分析写入数据库
4.post.ph 用于发送流文件
5.good.txt 文件,用来发送用,内容是001
王军
[email protected]
山东省青岛市滨海路2号假设以上文件都放在根目录,可以用http://localhost/文件名 访问到。首先创建数据库CREATE TABLE `student` (
`id` int(10) unsigned NOT NULL auto_increment,
`xid` varchar(20) NOT NULL,
`name` varchar(20) NOT NULL,
`email` varchar(100) NOT NULL,
`address` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
conn.php<?php
// 连接数据库
$conn=@mysql_connect("数据库host","帐号","密码") or die(mysql_error());
@mysql_select_db('数据库名',$conn) or die(mysql_error());
?>
list.php<?php
require "conn.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>demo</title>
</head>
<body>
<?php
$sqlstr = "select * from student order by id";
$query = mysql_query($sqlstr) or die(mysql_error());
$result = array();
while($thread=mysql_fetch_assoc($query)){
$result[] = $thread;
}
if($result){
echo '<table>';
echo '<th>NO</th><th>学生id</th><th>学生名字</th><th>学生邮箱</th><th>学生地址</th>';
foreach($result as $row){
echo '<tr>';
echo '<td>'.$row['id'].'</td>';
echo '<td>'.$row['xid'].'</td>';
echo '<td>'.$row['name'].'</td>';
echo '<td>'.$row['email'].'</td>';
echo '<td>'.$row['address'].'</td>';
echo '</tr>';
}
echo '</table>';
}
?>
</body>
</html>
add.php<?php
require "conn.php";$tmpfile = 'tmp.txt'; // 临时文件,用于保存接收到的文件流$content = $GLOBALS['HTTP_RAW_POST_DATA'];
if(empty($content)){
$content = file_get_contents('php://input');
}file_put_contents($tmpfile, $content, true); $file = file_get_contents($tmpfile);
$data = explode(chr(10), $file); // 分解成数组
$xid = mysql_escape_string($data[0]);
$name = mysql_escape_string($data[1]);
$email = mysql_escape_string($data[2]);
$address = mysql_escape_string($data[3]);$sqlstr = "insert into student(xid,name,email,address) values('".$xid."','".$name."','".$email."','".$address."')";
mysql_query($sqlstr) or die(mysql_error());header('location:list.php');?>
post.php<?php
$data = file_get_contents('good.txt'); // 要发送的文件$opts = array(
'http' => array(
'method' => 'POST',
'header' => 'content-type:application/x-www-form-urlencoded',
'content' => $data
)
);$context = stream_context_create($opts);$url = 'http://localhost/add.php'; // 接收的urlfile_get_contents($url, false, $context);?>
执行步骤如下,访问http://localhost/post.php
然后访问http://localhost/list.php
如果list.php能显示good.txt文件的内容,表示成功,每运行一次post.php,数据表都会增加一条记录。