0

如何使die()消息在同一页面的 HTML 部分的某个位置回显?

$files = array();
  $upload = $_FILES['upload']['tmp_name'];
    foreach($upload as $uploaded){
if(!empty($uploaded)) {
if(isset($uploaded)){
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime= finfo_file($finfo, $uploaded);
  switch($mime) {
  case 'application/pdf':
  break;
  default:
die('pdf file only.');     
break;
      }
    }
  }
}
4

4 回答 4

2

die将立即停止执行并将缓冲区中的任何内容发送到浏览器。

就个人而言,我喜欢做这样的事情:

function halt($str="") {
    if( $str) echo "<div class=\"server_notice\">".$str."</div>";
    require("template/foot.php");
    exit;
}
于 2013-04-11T19:19:54.993 回答
1

怎么样不要只使用 die,做一些事情来插入 html 然后死。

或者,您有register_shutdown_function(文档: http: //php.net/manual/es/function.register-shutdown-function.php)这将允许您在脚本结束后立即执行操作die;

于 2013-04-11T19:19:34.377 回答
1

没有办法做到这一点。die()exit()将停止执行您的脚本。

你可以做一些错误报告系统。 $lastError = null

然后做你想做的事并设置这个错误。

然后你可以在某个地方检查它:

if ($lastError == 2){
  echo "The file is no in PDF format" ;
} //and so on.

您还可以创建一些常量,例如:

define("ERROR_WRONG_FORMAT", 2); //Make the error clear.
于 2013-04-11T19:21:54.247 回答
1

您需要回显 div 标签,然后使用 CSS 定位它们。

die('<div id="error">pdf file only.</div>'); 

然后将以下文本添加到您的 CSS 中:

#error{position:absolute;top:10;left:10;}

您需要根据您希望它们的位置来更改顶部和左侧的值。

如果您不知道 CSS 是什么,我建议您在 YouTube 上观看 TheNewBoston 的教程!

于 2013-04-11T19:22:42.847 回答