redhat5中用php调用perl,如system("perl *.pl")要创建一个txt文件,但是没有创建文件

redhat5中用php调用perl,如system("perl *.pl")要创建一个txt文件,但是没有创建文件,第1张

首先,你创燃伍建空白文件的位置没有明确。php是否有权限在工作(未必是你所认为的目皮御或录)目录中创建文件。比较简单的方法是在perl文件中指定创建TXT文件的目录。要有组写入权限。

其次在PHP中执行和root帐号手工执行perl脚本时由于环境变量区别。拆裂可能需要指定perl的执行目录

一般是/usr/bin/perl如

system("/usr/bin/perl /opt/var/test.pl")

test.pl中创建文件:

open(outfile,">/opt/var/1.txt")

我是在linux下测试的,你在windows下的话把文扒皮举件路径中的分隔符"/"改成“\\”即可。

程序带两个参数,第一个参数是你第一个文握腊件的路径;

第二春碧个参数是你下面这些文件的总路径。

当然你可以更改程序头部,直接将这两个参数赋值过去。

给你做两种示例:

1. 命名为 test.pl , 执行 perl test.pl 'd:\autocfg\compare\gcell.txt' 'D:\autogetcfg\CMECfgSyncView_20120225092703\'

2.将文件头部的my ($file,$dir) = @ARGV

改为 my ($file,$dir) = ('d:\autocfg\compare\gcell.txt

','D:\autogetcfg\CMECfgSyncView_20120225092703\')

然后直接执行 perl test.pl

最后的文本保存在test.pl同一级目录下的result.txt中,若使用中有问题请追问或私信或百度hi联系我。

#!/usr/bin/perl

use strict

my ($file,$dir) = @ARGV

if (!-e "$file") {

print "$file not exist!\n"

exit(-1)

}

if (!open FILE,"<$file") {

print "open $file failed!\n"

exit(-1)

}

my %Cfg

my ($cate,$index,$name)

while (<FILE>) {

chomp

($cate,$index,$name) = split /,/,$_

$Cfg{$cate}{$index} = $name

}

close FILE

my $content

foreach my $cate (keys %Cfg) {

next if ($cate eq '')

my ($part1,$part2) = ($1,$2) if ($cate =~ /(\D+)(\d+)/)

next if (!defined $part2)

my $subdir = "$part1".'0'."$part2/"

if (-d "$dir/$subdir") {

my @files

opendir DIR, "$dir/$subdir/"

foreach (readdir DIR) {

next if ($_ =~ /^\./ || $_ !~ /\.txt/)

push @files,$_

}

closedir DIR

foreach my $name (@files) {

if (!open FILE,"<$dir/$subdir/$name") {

print "open $dir/$subdir/$name failed!\n"

next

}

else{

foreach (<FILE>) {

chomp

my ($index) = split /\s+/,$_

$content .= "$Cfg{$cate}{$index}\t$_\n"

}

close FILE

}

}

}

}

print "$content"

open FILE , ">result.txt"

print FILE $content

close FILE

print "content stored in result.txt,Succeed!\n"

exit(0)

html解析的时候会自动将空白字符过滤掉,如空格、制表符、换行符、回车符,所以输出时纯虚需要进行转移

对数据库中的字段用函培裤隐数replace(字段名配厅,chr(10),'

')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12331488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存