0

実行中のスクリプトのタイトルを動的に作成する必要があります。タイトルは、現在使用中のファイルに依存する必要があります。

私の構造スクリプトは次のとおりです。

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

私のタイトル関数コードは 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

-1

私は問題を見つけました:

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

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

それを実行してみると、"This" が $string に明確に含まれているにもかかわらず、"Not found" が出力されることがわかります。別の大文字と小文字の区別の問題ですか?そうではありません。今回の問題は、"This" が $string の最初にあるという事実にあります。これは、strpos() が 0 を返すことを意味します。しかし、PHP は 0 を false と同じ値と見なします。 「Substring not found」と「Substring found at index 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 に答える