• 17
  • 十二月

PHP用ob_start() 方法判断输出结果

Kenami 发布于 16:35:26  |  阅读 312 次 |  2 条评论  

今天遇到一个问题,PHP的一个方法返回的是一个打印信息,我在页面调用此方法就不能判断如果它打印空的情况(我想把方法打印空的情况用其他字符串代替)

因为这是一个通用的方法,也不是我写的,所以不能去更改方法本身。当然也不能用 if ( functionName() == NULL) 来判断,因为方法只是来输出一个字符串或者空值。

最后自己用了一个拙劣的方法,用ob_start() 来解决。下面是代码

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
ob_start();
previous_post_link('%link', '%title', false);
$previous_link = ob_get_contents();
ob_end_clean();
 
ob_start();
next_post_link('%link', '%title', false);
$next_link = ob_get_contents();
ob_end_clean();
 
<p>前一篇:&nbsp;<?= $previous_link == NULL ? "没有了" : $previous_link ?><br />后一篇:&nbsp;<?= $next_link == NULL ? "没有了" : $next_link ?></p>
?>

如果有某位大虾更好的方法,请留言告诉我~谢谢!

评论

2 条评论

  • 1楼  test   发表于: 十二月 21, 2009   10:32 上午

    直接 $previous_link = previous_post_link(’%link’, ‘%title’, false); 不可以吗

    [回复]

    Kenami 回复于:

    这位”test”兄,或许你可以测试一下。
    此方法里面是直接打印信息,如果有 $previous_link = previous_post_link(’%link’, ‘%title’, false); 这条语句,那么它实际上在这个地方已经打印了。

    [回复]