本文目錄一覽:
- 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);
原創文章,作者:YAJP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/145725.html