所以,我只是第一次开始了一些 PHP 开发。我正在尝试使用 HTML DOM 导航/解析库。我选择了 ganon,但并不真正关心我最终使用哪一个。
但我马上注意到 PHP 与我见过的所有其他编码语言有着根本的不同。当我查看错误处理时,这一点非常明显。如果一个包含的类/脚本只是打印它的错误,我不能简单地用 try/catch 捕获它。我相信这就是这里正在发生的事情。我没有控制权,即使我是告诉 file_get_dom 运行的人。它可以做任何它想做的事情,并将它想要的任何东西写入生成的 HTML 文件。
这是不好的做法,它肯定把我搞砸了。解决办法是什么?我可以捕捉到它试图写的文本(用隐藏的 div 包围它)吗?但是,在我想阻止这个类写任何它想要的东西的同时,我也知道是否发生了错误,以便我可以采取适当的步骤。
注意:做更多的测试,即使我抛出自己的错误或使用“或死亡”,它并没有完全符合我的预期。所以也许我也只是不知道如何使用 Try/Catch,即使我已经在一些教程中看到它与此完全一样。但是即使这是一个语法错误,我最初的问题仍然存在,如何控制包含的类,以免它们污染我的 html 文件。
<?php
try{
include_once('ganon.php');
}catch(Exception $e){ echo "OUT: $e->getMessage()"; }
class GamesSummery{
public function __construct(){
try{
$html = file_get_dom('web site adress');
}catch(Exception $e){ echo "Main: $e->getMessage()"; }
}
} $test = new GamesSummery();
输出(S):
“致命错误:第 238 行 C:\xampp\htdocs\hockey\ganon.php 中的最大执行时间超过了 30 秒”
或者
“警告:file_get_contents():第 19 行 C:\xampp\htdocs\hockey\ganon.php 中的文件名不能为空”