我怎么能把这个脚本输出到文本文件?

时间:2017-03-26 19:06:57

标签: php

让我们说我想把这个脚本输出到一个名为“text1”的文本文件中,我该怎么做?

<?php
$friends = array("Mike Lark" => "Islip", "Nick Miller"=>"Valley Stream", "James Allen"=>"Los Angeles", "John D"=>"New York");

foreach($friends as $friend => $town){
echo "<tr><td>$friend</td> > <td>$town</tr><BR>";
?>

4 个答案:

答案 0 :(得分:1)

另一种替代方法是,不使用变量连接替换echo语句,而是使用输出缓冲区。

使用此功能,您可以捕获使用echo打印的所有内容,然后保存到文件:

<?php
ob_start(); // start an output buffer

  echo "<head><title>Friends & Hometowns</title></head>";
  echo "<h1>List of Friends & Their Hometowns</h1>"; 


$friends = array("Mike Lark" => "Islip", "Nick Miller"=>"Valley Stream", "James Allen"=>"Los Angeles", "John D"=>"New York");

foreach($friends as $friend => $town){
echo "<tr><td>$friend</td> > <td>$town</tr><BR>";
}
echo "</table>";

$output = ob_get_clean(); // extract everything that has been buffered
file_put_contents('output.txt', $output); // save it to file

答案 1 :(得分:0)

file_put_contents('file.txt', $friend."</td> > <td>".$town."</tr><BR>", FILE_APPEND);

使用FILE_APPEND代替包含文件,请检查docs

答案 2 :(得分:0)

您不需要包含该文件来编写它,以下代码将正常工作:

此外,如果您回显,那么回声不会进入文件。 您需要在变量中添加所有数据,然后将结果写入文件:

<?php
  $result = "";
  $result.="<head><title>Friends & Hometowns</title></head>";
  $result.="<h1>List of Friends & Their Hometowns</h1>";    
  $friends = array("Mike Lark" => "Islip", "Nick Miller"=>"Valley Stream", "James Allen"=>"Los Angeles", "John D"=>"New York");

foreach($friends as $friend => $town){
    $result.="<tr><td>$friend</td> > <td>$town</tr><BR>";
}
$result.="</table>";
file_put_contents('file.txt', $result);
?>

<强>更新

As @Ahmed Rezk建议如果您不想删除文件中的现有数据,请使用file_put_contents()的FILE_APPEND标志;像:

file_put_contents('file.txt', $result, FILE_APPEND);

答案 3 :(得分:0)

这可以是“MVC”'ed。

##Model.php
<?php
$friends = array("Mike Lark" => "Islip", "Nick Miller"=>"Valley Stream", "James Allen"=>"Los Angeles", "John D"=>"New York");

##View.php
<head><title>Friends & Hometowns</title></head>
<h1>List of Friends & Their Hometowns</h1>
<?php
foreach($friends as $friend => $town){ ?>
   <tr><td><?=$friend?></td>  <td><?=$town?></tr>
<?php 
}
?>

##Controller.php
<?php
require_once "Model.php";
require_once "View.php";

就是这样。您的代码更清晰,有关注点的分离。您的IDE可以为您的HTML和PHP代码提供更好的智能感知。

在此之后,您可以按照@Ibrahim的回答获取输出缓冲区内容。

免责声明:这是基本的MVC,当然可以改进。然而,这远远好于在整个地方回应html。