0

我有build_additional_docs一个函数,它调用另一个执行少量操作的函数,但首先它调用 function read_all_file,它将文件提取到字符串变量并返回它。

create_file_node当从另一个函数调用该函数时,它工作得很好。

但是当它被调用时build_additional_docs,客户端会等待服务器直到超时......我认为该函数失败了fgets()

附加评论:当我create_file_node用相同的文件调用函数时,不同的是文件名是静态字符串,并且我没有 foreach 循环,代码再次工作......

这是我的代码:

function build_additional_docs($dir_name, $addDocsArr){
foreach ($addDocsArr as $doc) {
    if($summery != ''){
        $fileName = $dir_name . '\\' . $doc;
        create_file_node($fileName);
    }
}


    function create_file_node($fileName){    global $base_url;
try{
        $text = read_all_file($fileName);
}
catch (Exception $ex){
     // some message here
}
return 0;
}

 function read_all_file($file_name){
$file_handle = fopen($file_name, "r");
while (!feof($file_handle)) {
   $line[] = fgets($file_handle);
}
fclose($file_handle);
return implode('',$line);
}
4

1 回答 1

1

发现错误!$addDocsArr 变量是explode() 函数的返回值,用于将字符串拆分为单独的文件名。返回的数组包括文件名字符串,其中包含无法看到 的空格字符......所以当我添加代码时:$fileName = $dir_name . '\\' . substr($doc, 0,strlen($doc) - 1);

代码有效。

于 2012-09-11T11:12:03.597 回答