$subjectDirectory = '../blogtext/';
$subjectHandle = opendir( $subjectDirectory );
$fileName = $_SERVER['PHP_SELF'];
$tempArray = explode( '-', $fileName );
$finalNum = '-'.$tempArray[1].'-';
$subjectFile;
if( $subjectHandle = opendir( '../blogtext/' ) )
{
/* If you echo $finalNum here, you get '-0-' on the page. */
while( false !== ( $subjectFile = readdir( $subjectHandle ) ) )
{
/* If you echo $finalNum here, you get '-0--0--0--0--0-' on the page. */
if( $subjectFile != '.' && $subjectFile != '..' && !is_dir( $subjectFile ) && strpos( $subjectFile, $finalNum ) )
{
include( $subjectFile );
}
}
closedir( $subjectHandle );
}
基本上,我要做的是; 从当前文件名(-0-example.php)获取-NUMBER-代码,然后在目录($ subjectDirectory)中扫描以相同代码开头的文件名。然后包括文件。
我无法这样做因为$ finalNum将代码更改为“连续5次代码”,所以我找不到要包含的正确文件。
答案 0 :(得分:0)
它不起作用的原因是因为readdir()
仅返回文件名,而不是完整路径。
试试这个: include($ subjectDirectory。$ subjectFile);
Re:/ *如果你在这里回复$ finalNum,你会在页面上得到'-0--0--0--0--0-'。 * /
获得此输出的原因是因为您回显$ finalNum 5次。 $ finalNum的值不会改变。
修改强>
我在if
声明中又发现了一个问题。如果$ subjectFile以$ finalNum开头,strpos( $subjectFile, $finalNum )
将返回0。
请改用它。
if( $subjectFile != '.' && $subjectFile != '..' && !is_dir( $subjectFile ) && strpos( $subjectFile, $finalNum ) !== false )