为了账号安全,请及时绑定邮箱和手机立即绑定

php是循环执行的吗?

php是循环执行的吗?

PHP
米琪卡哇伊 2023-08-11 15:57:04
我需要删除 filename.html(如果存在),创建一个新的 filename.html 并显示它,但我有以下问题。当创建一个新的 filename.html 时,它会立即被终止,就像 php 重新开始一样。有没有办法执行一次?这是我的 php.ini。<?php  $filename = 'filename.html';  if (file_exists($filename)) {       // if filename.html exist i delete it     unlink($filename);  }  do {    if (file_exists($filename)) {    // waiting for a new filename.html (generated by another process)         include ($filename);        // i will show it when ready         break;    }  } while(true);?>我也尝试过此解决方法仅在开始时执行删除,但它不起作用:if( !defined('ALREADYEXECUTED') ){         if (file_exists($filename)) {     unlink($filename);  }}define('ALREADYEXECUTED', TRUE);
查看完整描述

3 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

header("Refresh:2") 的测试对我不起作用,但它帮助我找到了解决方案(肯定有更好的解决方案):


我不得不将 php 分成 2 部分:


首先:


<?php


  $filename = 'filename.html';


  if (file_exists($filename)) {       // if filename.html exist i delete it

     unlink($filename);

  }


  header('Location:secondfile.php');

}

第二个文件是这样的:


  <?php

    

      $filename = 'filename.html';

    

      do {

        if (file_exists($filename)) {

          usleep( 100000 );

          include ($filename);

          break;

        }

      } while(true);


  ?>

回答一些问题: $filename 在几毫秒内创建。之前创建的文件被删除,在这种情况下不会再被删除。我不是 php 专家,如果有更好的解决方案在一个文件中完成它,我会很高兴学习。


查看完整回答
反对 回复 2023-08-11
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

您在代码中使用了无限循环,这对于您要做的事情来说不是最佳实践!


您可以使用header("Refresh:1")刷新页面来每秒检查文件是否存在。这可以节省你的资源,也可以做你想做的事。


<?php

header("Refresh:2");

$filename = 'filename.html';


if (file_exists($filename)) { // if filename.html exist i delete it

    unlink($filename);

}


if (file_exists($filename)) { // waiting for a new filename.html (generated by another process)

    include ($filename); // i will show it when ready

}


?>

包含新文件后要小心删除header("Refresh:2"),或使用条件来避免包含后删除。


查看完整回答
反对 回复 2023-08-11
?
波斯汪

TA贡献1811条经验 获得超4个赞

只需摆脱 do while 循环,这就是导致无限循环的原因。那本来的目的是什么?



查看完整回答
反对 回复 2023-08-11
  • 3 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信