我知道标题含糊不清,但我会尝试解释。我是PHP的新手,我正在编写一个简单的解析器来处理程序中的日志文件,现在我被困住了,让它给我一个文件名列表。我已经删除了一些不相关的代码并确保它有效。
<?php
$inputFile = fopen("sampleScan2.html", "r");
$fileLocation = '';
function getFileList($inputFile)
{
$line = '';
$owner = '';
global $fileLocations;
$fileLocation = '';
while (!feof($inputFile))
{
if (substr($line, 0, 1) != ' ')
{
$dom = new DOMDocument();
$dom->preserveWhiteSpace = FALSE;
@$dom->loadHTML($line);
$tdElement = $dom->getElementsByTagName('td');
$elementCount = $tdElement->length;
for ($i=0; $i<$elementCount; $i++)
{
if ($i == 1)
{
$fileLocation = $tdElement->item($i)->nodeValue;
}
if ($i== 6)
{
$owner = $tdElement->item($i)->nodeValue;
}
}
echo $fileLocation . '<br>'; //Gives me correct file locations
}
$line = fgets($inputFile);
}
}
//Send actual mail message
$headers = 'MIME-Version: 1.0' . "\r\n" . PHP_EOL .
'Content-type: text/html; charset=iso-8859-1' . "\r\n" . PHP_EOL .
'From: "Jane Smith" <jsmith@endof.it>' . "\r\n" . PHP_EOL .
'X-Mailer: PHP-' . phpversion() . PHP_EOL;
$to = '"John Smith" <jsmith@theInter.net>';
$subject = 'Report';
$message = '\'' . getFileList($inputFile) . '\'' . '<br>'; //Call to get the file locations
mail($to, $subject, $message, $headers);
fclose($inputFile);
?>
所以基本上我希望能够在代码的邮件部分调用一些函数,并返回一个列表。非常感谢任何帮助。
答案 0 :(得分:0)
什么的清单?在getFileList中生成的文件? getFileList没有生成列表,它只是在找到文件时输出文件,这意味着没有任何内容可以返回到$mesage = ...
函数。
至少你需要这样的东西:
function getFileList(...) {
$filelist = array();
for (...) {
$filelist[] = ...;
}
return $filelist;
}