本文目录一览:
- php 批量大文件上传下载如何实现?
- php,perl等脚本软件分割一个文件为多个TXT文件的问题。
- php中如何分割文本
- PHP如何根据时间段切割音频文件
- php截取文件扩展名
- php分割txt文本
php 批量大文件上传下载如何实现?
- 首先还是查看环境是否支持超大容量上传的支持,500M以上的文件通常为视频文件;
- 即然他要上传500M以上的文件,估计服务器性能必定非同凡想,所以暂可不考虑服务器硬件配置问题,但一定要考虑到网速问题,建议1000M以上出入速率,如少于这个数,你可以放弃这个方案了;
- 前面硬件都过关了,但程序也要加强了,一下上传500M是哪种语言都不能实现的,唯一解决方案,文件切割,如迅雷下载原理一样(采用续点上传),分成若干小块,然后全部上传完毕以后,再进行文件合成。
- 至于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经过处理,输出为数组,以下是代码:
$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);