0

私はcheeseside.phpと呼ばれるそれ自体のファイルにいくつかのphpを持っています

<?php
foreach (glob("./Cheese_of_Week/*.php") as $fileName) {  //set files in specified directory as $fileName
   $fileContents = file_get_contents($fileName); //retrieve the contents of the php file in string format
   $findme   = 'id="cheeseName'; //finds where the cheese name starts in the file
   $findme2 = '</h2>'; //find the end of the cheese name
   $pos = strpos($fileContents, $findme); //finds the offset starting position 
   $pos2 = strpos($fileContents, $findme2, $pos); //finds the ending position of the name
   $cheesePos=$pos+strlen($findme)+2; //finds the real starting position by cominsating for the search term and 2 characters of the html tag that I didn't include in the search term
   $cheeseName = substr($fileContents, $cheesePos, $pos2-$cheesePos); //Isolates the cheese name from the     $fileContents string
   if ($fileName != "./Cheese_of_Week/currentCheese.php")  //avoids repeating the current cheese which is one of the php files that will be pulled
     echo "<a href=\"$fileName\">".$cheeseName."</a>"."<br/>"; //makes a link to the the php file    
} 
?>

ファイルを直接呼び出すと、希望どおりの結果が得られます(見つかったphpファイルをリンクとしてリストします)。currentCheese.phpというファイルからincludeステートメントを使用してこのファイルを呼び出そうとすると、絶対に取得されます。なし。そのファイルには、正常に機能する他のincludeステートメントがあります。コードをドキュメントに直接入れてみましたが、機能しません。私はphp.netのマニュアルページとスタックオーバーフローを検索して、スコープ、インクルードステートメモリ、またはエコーと関係があるかどうかを確認しています。何も得られない理由がわかりません。

4

1 に答える 1

4

これglob("./Cheese_of_Week/*.php")エントリポイント、この場合はcurrentCheese.phpに関連していることに注意してください。

パスを常にcheeseside.phpの場所に関連付けるには、次を使用します。

glob(__DIR__ . "/Cheese_of_Week/*.php");

__DIR__

于 2013-01-16T21:23:00.020 に答える