如何在不影响php中任何其他函数的情况下清除先前返回的结果?
how would i clear previously echoed result without affecting any other functions in php?
我目前正在网站上工作,它有一个搜索框来搜索特定项目。页面以表格格式回显结果。到目前为止,一切都很完美,但当我试图过滤结果(取决于特征)时,我得到了两组结果。一个是先前显示的结果表,另一个是过滤后的结果。我不希望之前的结果再次显示在屏幕上而不影响任何其他程序。比如会议??我不知道该如何处理这种情况。
<?php
include'search.php';// form for a search box.
if (isset($_POST['search_name'])) {
$search_name=mysql_real_escape_string(htmlentities(trim($_POST['search_name'])));
$errors = array();
if (empty($search_name)){
$errors[] ='please enter a search term';
}
else if (strlen($search_name)<3){
$errors[] = 'your search term must be three or more characters';
}
else if (1==2){
$errors[] ='your search for '.$search_name.' returened no results';
}
if (empty($errors)){
filter($search_name); //it display another form in the navigation bar to filter the search result.
search_results($search_name);//searches for all the result onthe database depending on the keyword entered in searchbox.
} else{
foreach($errors as $error) {
echo $error,'</br>';
}
}
}
?>
查看代码:
echo 'world';
echo 'hello !';
可以使用ob_start()
, ob_get_contents()
和ob_clean()
来截取回波。
ob_start();
echo 'world';
var $echoed = ob_get_contents();
ob_clean();
// real echo
echo 'hello ' . $echoed . '!';
// now you see
// hello world!
因为ob '输出缓冲'是PHP原生的,所以您可以将它用于函数,包含等任何东西。我使用这种方法来截取控制器流中的(1.)输出,并截取视图的(2.)输出,以便以后可以组合它们(例如,将PHP错误呈现到调试div中。
相关文章:
- 如何在未直接触发的情况下停止事件
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何在不传递此信息的情况下查找被调用的元素
- 如何在不刷新页面的情况下更新显示框
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 在我的情况下,如何进行http请求
- 如何在不隐藏键盘的情况下清除输入搜索?(手机)
- 挖空:在不清除视图模型中的值的情况下更改选择列表中的选项
- 画布绘制 - 在不清除旧状态的情况下更改旋转轴
- 在不重新加载页面的情况下清除值
- 如何在不知道其ID的情况下清除所有setInterval()和setTimeOut()
- 在不重新加载页面的情况下清除#
- Ajax:在GET请求的情况下,页面将被清除
- 如何在不丢失事件侦听器和展开属性的情况下清除文件输入
- 如何在不影响php中任何其他函数的情况下清除先前返回的结果?
- 如何在不刷新页面的情况下清除传单绘制工具创建的先前图层?