<?php
ini_set('max_execution_time', 864000);
$seq = "D:/Ractip/Sequence.txt";
$mir = "D:/Ractip/mirhominid.txt";
$shandle = fopen($seq, 'r');
$sdata = fread($shandle, filesize($seq));
$mhandle = fopen($mir, 'r');
$mdata = fread($mhandle, filesize($mir));
$sexp = explode(">", $sdata);
$mexp = explode(">", $mdata);
$i = 1;
$a = 1;
$count = count($sexp);
while($i < $count)
{
$name = explode("\n", $mexp[$a]);
$name = explode(" ", $name[0]);
$name1 = explode("\n", $sexp[$i]);
$file2 = "D:\Ractip\mir\\"."$name[1]".".txt";
$file1 = "D:\Ractip\sequence\\"."name1[0]".".txt";
if ($i == 1){
mkdir("D:/Ractip/Interactions/"."$name[1]", 0777);
}
$file = "D:/Ractip/Interactions/"."$name[1]"."/"."$name1[0]"."+"."$name[1]".".txt";
$fhandle = fopen($file, 'w');
$query = "ractip "."$file1"." "."$file2";
$exec = shell_exec($query);
print $exec;
fwrite($fhandle, $exec);
fclose($fhandle);
if ($i == $count){
$i = 1;
$a++;
}else{
$i++;
}
}
?>
这是脚本。我基本上是在使用一个工具来获得大约 3750 万个组合的结果,所以你可以理解这不是我自己可以做的事情,因此出现了这个脚本,之前我将所有候选人分成单独的文件,所以就是我这样称呼它们的 $name 变量的解释。
问题是shell_exec
命令,初步的谷歌搜索确实没有解释为什么它会这样,但shell_exec
拒绝处理动态命令,相反,如果我要制作一个静态命令,就像ractip xy.txt zy.txt
它会处理那样,我需要做的是构建该命令,然后进行shell_exec
处理,不幸的是它没有这样做,如果有人可以解释为什么这个命令会以这种方式运行以及是否有解决这个故障的方法,那将非常有帮助。
当论坛上的一个人说这些只是 php 做得不好的一些事情时,我终于明白了他的意思。
哦,是的,我正在通过浏览器部署它,不知道这是否有帮助。