if(!file_exists("welcome.txt"))
{
die("file not found");
}
else
{
$file = fopen("welcome.txt","r");
}理论上文件不存在,浏览器应该输出这样的错误消息:file not found
可为什么我的浏览器什么也没有输出?
{
die("file not found");
}
else
{
$file = fopen("welcome.txt","r");
}理论上文件不存在,浏览器应该输出这样的错误消息:file not found
可为什么我的浏览器什么也没有输出?
这个计算机是个很老实的东西,有就有没有就没有。
问题应该在自身环境上检查。在某些情况下,你可能想清除被缓存的信息。例如如果在一个脚本中多次检查同一个文件,而该文件在此脚本执行期间有被删除或修改的危险时,你需要清除文件状态缓存。这种情况下,可以用 clearstatcache() 函数来清除被 PHP 缓存的该文件信息。必须注意的是,对于不存在的文件,PHP 并不会缓存其信息。所以如果调用 file_exists() 来检查不存在的文件,在该文件没有被创建之前,它都会返回 FALSE。如果该文件被创建了,就算以后被删除,它都会返回 TRUE 函数 unlink() 会自动清除该缓存.
if(!file_exists("welcome.txt"))
{
echo "11111111111111";
die("file not found");
}
else
{
echo "2222222222222";
$file = fopen("welcome.txt","r");
}
//smarty_function_get是写的一个smarty插件,向前台输出数据,前台输出数据如下:Array ( [model] => news [condition] => cate=1 [var] => news )
value:model
value:condition
value:var//前台代码
/*{include file='header.html'}
*{get mode='news' condition='cate=1' var='news'}
*<ul>
*{foreach from=$news item=v}
*<li>{$v.title}</li>
*{/foreach}
*</ul>
*{include file='footer.html'}
*/function smarty_function_get($params,$template){
$must = array('model','condition','var');
$maybe = array('order','limit');print_r($params);
//
//Array ( [model] => news [condition] => cate=1 [var] => news )
echo "<br />";foreach($must as $v)
{
echo "value:".$v."<br />";
}/*value:model
*value:condition
*value:var
*/
foreach($must as $v){
if(!array_key_exists($v,$params)){
echo "the var $v must be given";}
}
$modelName = $params['model'].Model;
$model = new $modelName;
$row = $model->getAll($params['condition'],$params['order'],$params['limit']);
$template->assign($params['var'],$row);}如果把上面代码中的
echo "the var $v must be given"; 改为 die("the var $v must be given");
应该有两种情况
1,原样输出
2,报错:the var $v must be given //$v可变可现在的问题是什么都没有输出,也不报错
print_r($params);
//Array ( [model] => news [condition] => cate=1 [var] => news ) $must = array('model','condition','var');对于
foreach($must as $v){
if(!array_key_exists($v,$params)){
echo "the var $v must be given";
}$must 的所有元素都以关联键的形式出现在 $params 中
所以 echo "the var $v must be given"; 不会被执行
/*{include file='header.html'}
*{get mode='news' condition='cate=1' var='news'}
*<ul>
*{foreach from=$news item=v}
*<li>{$v.title}</li>
*{/foreach}
*</ul>
*{include file='footer.html'}
*/并且已经测试
foreach($must as $v){
if(!array_key_exists($v,$params)){
echo "the var $v must be given";
}
可以运行 例如把前台代码中的 mode='news' 去掉后,前台输出代码:
Array ( [condition] => cate=1 [var] => news )
value:model
value:condition
value:var
the var model must be given
但是如果把上面代码中的
echo "the var $v must be given"; 改为 die("the var $v must be given"); 就又什么也不输出了