用php调用txt数据的简单介绍

想通过PHP实现读取txt文本每次刷新网页随机获取5行数据并输出?$content = file("test.txt");
$randContent = array_rand($content,5);
echo implode("br /",$randContent);
第一行使用file把把整个文件读入一个数组中
第二行使用array_rand在数组中随机取出5个元素
第三行将取出的5个数组中间添加br /标签并打印出来
file
把整个文件读入一个数组中
file ( string $filename , int $flags = 0 , resource $context = ? ) : array
array_rand
从数组中随机取出一个或多个随机键
array_rand ( array $array , int $num = 1 ) : int|string|array
implode
将一个一维数组的值转化为字符串
implode ( string $glue , array $pieces ) : string
用php读取txt内容首先fopen读取TXT文件,获取一个文件指针 , 然后fgets获取一行,再fgets继续读取下一行
官方例子:
?php
$f = fopen ("fgetstest.php", "r");
$ln= 0;
while (! feof ($f)) {
$line= fgets ($f);
++$ln;
printf ("%2d: ", $ln);
if ($line===FALSE) print ("FALSE\n");
else print ($line);
}
fclose ($f);
这个前提是你的$f这个文件指针不能关闭 , 如果你想在不同请求的情况下实现 , 那就要吧$f做全局存储了,看看存session可否(我没做过,不确定,你试试看)
php如何调用某个文件夹里面某个txt内容思路,你可以把文件名按照一定规则,然后随机生成文件名来读取,或者获取目录下的所有txt生成个数组 , 然后冲数组中随机抽取来搞定 。
如何利用php读取txt文件再将数据插入到数据库serial_number.txt的示例内容:
serial_number.txt:
DM00001A11 0116,
SN00002A11 0116,
AB00003A11 0116,
PV00004A11 0116,
OC00005A11 0116,
IX00006A11 0116,
创建数据表:
create table serial_number(
id int primary key auto_increment not null,
serial_number varchar(50) not null
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
php代码如下:
$conn = mysql_connect('127.0.0.1','root','') or die("Invalid query: " . mysql_error());
mysql_select_db('test', $conn) or die("Invalid query: " . mysql_error());
$content = file_get_contents("serial_number.txt");
$contents= explode(",",$content);//explode()函数以","为标识符进行拆分
foreach ($contents as $k = $v)//遍历循环
{
$id = $k;
$serial_number = $v;
mysql_query("insert into serial_number (`id`,`serial_number`)
VALUES('$id','$serial_number')");
}
备注:方法有很多种,我这里是在拆分txt文件为数组后 , 然后遍历循环得到的数组,每循环一次,往数据库中插入一次 。
再给大家分享一个支持大文件导入的
?php
/**
* $splitChar 字段分隔符
* $file 数据文件文件名
* $table 数据库表名
* $conn 数据库连接
* $fields 数据对应的列名
* $insertType 插入操作类型 , 包括INSERT,REPLACE
*/
function loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields=array(),$insertType='INSERT'){
if(empty($fields)) $head = "{$insertType} INTO `{$table}` VALUES('";
else $head = "{$insertType} INTO `{$table}`(`".implode('`,`',$fields)."`) VALUES('";//数据头
$end = "')";
$sqldata = https://www.04ip.com/post/trim(file_get_contents($file));
if(preg_replace('/\s*/i','',$splitChar) == '') {
$splitChar = '/(\w+)(\s+)/i';
$replace = "$1','";
$specialFunc = 'preg_replace';
}else {
$splitChar = $splitChar;
$replace = "','";
$specialFunc = 'str_replace';
}
//处理数据体 , 二者顺序不可换,否则空格或Tab分隔符时出错
$sqldata = https://www.04ip.com/post/preg_replace('/(\s*)(\n+)(\s*)/i','\'),(\'',$sqldata);//替换换行

推荐阅读