本文目录一览:
- 1、php 批量大文件上传下载如何实现?
- 2、php,perl等脚本软件分割一个文件为多个TXT文件的问题。
- 3、php中如何分割文本
- 4、PHP如何根据时间段切割音频文件
- 5、php截取文件扩展名
- 6、php分割txt文本
php 批量大文件上传下载如何实现?
1.首先还是查看环境是否支持超大容量上传的支持,500M以上的文件通常为视频文件;
2.即然他要上传500M以上的文件,估计服务器性能必定非同凡想,所以暂可不考虑服务器硬件配置问题,但一定要考虑到网速问题,建议1000M以上出入速率,如少于这个数,你可以放弃这个方案了;
3.前面硬件都过关了,但程序也要加强了,一下上传500M是哪种语言都不能实现的,唯一解决方案,文件切割,如迅雷下载原理一样(采用续点上传),分成若干小块,然后全部上传完毕以后,再进行文件合成。
4.至于PHP的文件切割,切割后上传,以及文件合并,此类代码网上有许多,楼主可查询并选择适合你的代码,实现你的功能!
php,perl等脚本软件分割一个文件为多个TXT文件的问题。
#语言:perl
#程序test.pl
#用法:test.pl 参数
#其中,参数为你要处理的文件路径
#输出文件都是className.txt,你也可以改后缀名,这个在程序中很容易看见
#!/usr/bin/perl
use strict;
if (!defined $ARGV[0]) {
print "用法提示:test.pl [处理的文件路径]\n\t\teg.test.pl c:\\a.txt\n";
exit(-1);
}
if (!-e "$ARGV[0]") {
print "文件($ARGV[0])不存在!\n";
exit(-1);
}
my $path = $ARGV[0];
my %Content;
if (!open FILE,"$path") {
print "无法打开权限!\n";
exit(-1);
}
else{
my $flag = 0;
my $i;
my ($temp,@line,$line);
foreach (FILE) {
chomp;
$line = $_;
# $_ = s/,$//;
next if ($_ =~ /^\s+$/);
@line = split /,/;
if ($flag == 0) {
$temp = $line."\n";
for ($i = 0;$i = $#line;$i++){
if ($line[$i] =~ /className/i){
$flag = 1;
last;
}
}
}
else{
$Content{$line[$i]} .= $temp.$line."\n";
$flag = 0;
}
}
close FILE;
}
foreach my $name (keys %Content) {
if (!open TXT,"$name.txt") {
print "无法写:$name.txt";
next;
}
else{
print TXT $Content{$name};
close TXT;
}
}
print "succeed!\n";
php中如何分割文本
PHP用空格分割文本为数组的方法:
php逐行读取文本文件,然后处理空格分隔文本,输出为数组的方法。
文本文档text.txt内容:
1 字段1 字段2 2 字段1 字段2 3 字段1 字段2 4 字段1 字段2
文本和文本之间用空格隔开,用php经过处理,输出为数组,以下是代码:
php $file = fopen("text.txt", "r") or exit("Unable to open file!");
while(!feof($file)) { $arr = split(' ' , fgets($file)); print_r($arr); } fclose($file);
输出结果:
Array ( [0] = 1 [1] = 字段1 [2] = 字段2 ) Array ( [0] = 2 [1] = 字段1 [2] = 字段2 ) Array ( [0] = 3 [1] = 字段1 [2] = 字段2 ) Array ( [0] = 4 [1] = 字段1 [2] = 字段2 )
这样就实现了PHP用空格分割文本为数组的方法.
PHP如何根据时间段切割音频文件
可以调用 ffmpeg 来实现
ffmpeg -i 输入音频文件路径 -ss 起始时间 -t 长度 输出文件名
php截取文件扩展名
解决楼主的问题的方法就是,分开写代码,即:
$filearr
=
split(".",$filename);
$filetype
=
end($filearr);
split
函数用来分割字符串的时候,基本等同于函数
preg_grep,分割表达式可以是一个正则表达式,也可以是一个普通字符串,所以本身的执行效率很低,这一点你要记得……
所以,实现你现在的这个需求的话,最好用explode函数,使用普通字符作为分割表达式……
但是也的确如楼上所说,split
函数(PHP里)已经弃用,你可以使用
preg_match、preg_match_all
、preg_grep
等使用正则表达式作为分割的函数来替代。
就整个你的需求而言,你的思路还不很好,当一个文件名是【a.b.c.d.e.f.g.php】的时候,程序要浪费多余的资源来分割其实你不用的a、b、c……,
所以要简单满足你取后缀名的需求的代码应该是:
$filetype=substr(strrchr($filename,'.'),1);
此外还有:$path_info
=
pathinfo($filename);
$filetype
=
$path_info['extension'];
其实不是很推荐。
下面比较一下它们各自的执行效率:
设文件名是:aaa.bb.php、循环执行10000次;执行10次取平均值:
split
+
end
:0.067644s
explode
+
end
:0.016251s
pathinfo
+
['extension']
:0.018983s
strrchr
+
substr
:0.008611s
【以上文字现场版纯手敲,2012-2-25
10:41,谢谢】
php分割txt文本
如果文件不是很大的情况,试试下面这个:
?php
function split_file($file_name, $number_lines)
{
try
{
if(!file_exists($file_name)) throw new Exception("文件不存在!");
$contents_array = array_chunk(file($file_name), $number_lines);
if(!$contents_array || !is_array($contents_array)) throw new Exception("文件内容不合法!");
array_walk($contents_array, function($contents, $k){
foreach($contents as $value){
file_put_contents($k . '.txt', $value, FILE_APPEND);
}
});
}
catch(Exception $e)
{
echo $e-getMessage();
}
}
split_file("README.md", 200);