0

我需要为我正在做的脚本动态创建标题,标题应该取决于当前正在使用的文件。

我的结构脚本是:

@require_once"bd.php";
@require_once"Funciones/functions.php";
include head.php;
include body.php;
include footer.php;

我的title函数代码是从head.php调用的

这是我的功能,但不起作用总是返回空白结果:s

function get_title(){
    $indexurl = "index.php";
    $threadurl = "post.php";
    $searchurl = "search.php";
    $registerurl = "register.php";

    $query = $_SERVER['PHP_SELF'];
    $path = pathinfo( $query );
    $url = $path['basename']; //This returns the php file that is being used

    if(strpos($url,$indexurl)) {
      $title = "My home title";
    }
    if(strpos($url,$threadurl)) {
      $title = "My post title";
    }
    if(strpos($url,$searchurl)) {
      $title = "My search title";
    }
    if(strpos($url,$registerurl)) {
      $title = "My register page title";
    }

return $title;
}

我调用函数:

<title><? echo get_title(); ?></title>
4

2 回答 2

2

正如我在最初的评论中所说的,可以在这里找到更好的方法: https ://stackoverflow.com/a/4858950/1744357

您应该将 identity 属性与 strpos 一起使用并针对 FALSE 进行测试。

if (strpos($link, $searchterm) !== false) {
  //do stuff here
}
于 2013-10-14T03:38:02.173 回答
-1

我发现了问题:

$string = "This is a strpos() test";

if(strpos($string, "This)) {
   echo = "found!";
}else{
   echo = "not found";
}

如果你尝试执行它,你会发现它输出“Not found”,尽管“This”很明显在 $string 中。这是另一个区分大小写的问题吗?不完全的。这次的问题在于“This”是$string中的第一个,也就是说strpos()会返回0。但是PHP认为0和false是一样的值,也就是说我们的if语句不能说出“未找到子字符串”和“在索引 0 处找到子字符串”之间的区别 - 真是个问题!

所以,在我的情况下使用 strpos 的正确方法是从 $indexurl、$threadurl、$searchurl 和 $registerurl 中删除第一个字符

function get_title(){
    $indexurl = "ndex.php";
    $threadurl = "ost.php";
    $searchurl = "earch.php";
    $registerurl = "egister.php";

    $query = $_SERVER['PHP_SELF'];
    $path = pathinfo( $query );
    $url = $path['basename']; //This returns the php file that is being used

    if(strpos($url,$indexurl)) {
      $title = "My home title";
    }
    if(strpos($url,$threadurl)) {
      $title = "My post title";
    }
    if(strpos($url,$searchurl)) {
      $title = "My search title";
    }
    if(strpos($url,$registerurl)) {
      $title = "My register page title";
    }

return $title;
}
于 2013-10-14T01:52:38.417 回答