求专家解答:php如何接收远程post过来的txt文本内容并同时写入mysql数据库呢?求完整代码!合适可加分!
txt文本内容字段格式:
学生id、学生名字、学生邮箱、学生地址
回复讨论(解决方案)
数据表:
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}?>
谢谢专家解答,有个地方没有表述清楚,txt文本内容非表单提交,是由远程客户端直接post过来整个txt文件,例如:
post的文件名:good.txt
文件内容:
001
王军
wangjun@126.com
山东省青岛市滨海路2号
请问专家,后台的接收代码是不是有变化?
使用php怎么模拟post good.txt文件给后台?
先在此谢过啦
只要是使用post方式提交的数据,都能够使用$_POST['变量名']的方式接收.
<?php$content = file_get_contents('php://input');?>
模拟文件上传?
干嘛非要用文件
用正则匹配找出对应数据
你是要上?一?txt文件,然後服?器把txt的?容?入??????
fdipzone专家好,我没有表述清楚,现重新梳理:txt文件非表单提交,是远程的客户端post过来一个txt文件,并写入mysql数据库。
例如:post的文件名:good.txt,文件内容
001
王军
wangjun@126.com
山东省青岛市滨海路2号
由于是远程客户端直接post good.txt文件,所以提交的数据没有变量名,而是直接的字符串,是不是不能用$_POST接收?
文件流吗?
下面的例子将完成php post文件流,接收文件流,分析文件流,写入数据库四个步骤
1.conn.php 用于连接数据库
2.list.php 用于显示数据库表记录
3.add.php 用于接收流文件并分析写入数据库
4.post.ph 用于发送流文件
5.good.txt 文件,用来发送用,内容是
001王军wangjun@126.com山东省青岛市滨海路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
<?phprequire "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
<?phprequire "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,数据表都会增加一条记录。
fdipzone 专家的回复灰常给力,我先试试,晚些时候给分。

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

PHP和Python都是高層次的編程語言,廣泛應用於Web開發、數據處理和自動化任務。 1.PHP常用於構建動態網站和內容管理系統,而Python常用於構建Web框架和數據科學。 2.PHP使用echo輸出內容,Python使用print。 3.兩者都支持面向對象編程,但語法和關鍵字不同。 4.PHP支持弱類型轉換,Python則更嚴格。 5.PHP性能優化包括使用OPcache和異步編程,Python則使用cProfile和異步編程。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版
視覺化網頁開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。