从文本文件[PHP]中的路径读取文本文件
我有一个文本文件($file),其中包含指向其他文件的路径。我的目标是读取这些文件的内容并将其打印到表中。从$file读取路径时,只有最后一行路径正确工作。从文本文件[PHP]中的路径读取文本文件,php,file,Php,File,我有一个文本文件($file),其中包含指向其他文件的路径。我的目标是读取这些文件的内容并将其打印到表中。从$file读取路径时,只有最后一行路径正确工作。 <?php $file = "log2.txt"; if(file_exists($file)) { $handler = fopen($file,'r'); while(!feof($handler)) { $lines = fgets(
<?php
$file = "log2.txt";
if(file_exists($file)) {
$handler = fopen($file,'r');
while(!feof($handler)) {
$lines = fgets($handler);
$wordarray = explode(' ', $lines);
#echo $wordarray[0]." ".$wordarray[1]." ".$wordarray[2];
if (strpos($lines, 'NOK') !== false) {
echo "<tr><td>".$wordarray[0]."</td></tr>";
if(file_exists($wordarray[2])){
$log = fopen($wordarray[2], 'r');
#echo "FILE EXISTS ".$log;
$logtext = fread($log,filesize($wordarray[2]));
echo "<tr><td>".$logtext."</td></tr>";
fclose($log);
} else {
echo "<tr><td>"."FILE ".$wordarray[2]." FAILED TO LOAD"."</td></tr>";
}
}
}
fclose($handler);
} else {
echo "FILE DOES NOT EXISTS";
}
?>
我认为问题可能是关于行尾之类的,但没有抓住重点。你说得对。
$wordarray[2]
还包含新行字符,因此在使用它之前,请将其通过trim()
函数并存储在变量中($filename
)
更新的内部如果
:
if (strpos($lines, 'NOK') !== false) {
echo "<tr><td>".$wordarray[0]."</td></tr>";
$filename = trim($wordarray[2]);
if (file_exists($filename)){
echo "FILE EXISTS ".$filename;
$log = fopen($filename, 'r');
$logtext = fread($log, filesize($filename));
echo "<tr><td>".$logtext."</td></tr>";
fclose($log);
}
else{
echo "<tr><td>"."FILE ".$filename." FAILED TO LOAD"."</td></tr>";
}
}
if(strpos($line,'NOK')!==false){
回显“$wordarray[0]”;
$filename=trim($wordarray[2]);
如果(文件_存在($filename)){
echo“文件存在”。$filename;
$log=fopen($filename,'r');
$logtext=fread($log,filesize($filename));
回显“$logtext.”;
fclose($log);
}
否则{
echo“.”文件“%$filename.”加载失败“.”;
}
}
此短函数的工作原理与sharm类似:
function displayFileContent( $fileName )
{
$arrayWithFileNames = file ( $fileName );
echo "<table>";
foreach ( $arrayWithFileNames as $singleFileName )
{
# remove the trailing \n on Linux - windows has 2 character as EOL
$singleFileName = trim(preg_replace('/\s\s+/', ' ', $singleFileName));
$contentOfFile = file_get_contents( $singleFileName );
echo "<tr><td>{$contentOfFile}</td></tr>";
}
echo "</table>";
}
函数displayFileContent($fileName)
{
$arrayWithFileNames=文件($fileName);
回声“;
foreach($arrayWithFileNames作为$singleFileName)
{
#删除Linux上的尾随\n-windows有2个字符作为EOL
$singleFileName=trim(preg_replace('/\s\s+/',''$singleFileName));
$contentOfFile=file\u get\u contents($singleFileName);
回显“{$contentOfFile}”;
}
回声“;
}
您可以这样使用它:
displayFileContent(“文件路径”)代码>
备注:无需检查文件是否存在……这些其他文件,即poelog.txt和latencieslog.txt
等是否与此脚本和log2.txt
存在于同一文件夹中?
function displayFileContent( $fileName )
{
$arrayWithFileNames = file ( $fileName );
echo "<table>";
foreach ( $arrayWithFileNames as $singleFileName )
{
# remove the trailing \n on Linux - windows has 2 character as EOL
$singleFileName = trim(preg_replace('/\s\s+/', ' ', $singleFileName));
$contentOfFile = file_get_contents( $singleFileName );
echo "<tr><td>{$contentOfFile}</td></tr>";
}
echo "</table>";
}