$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-示例.php(中获取 -NUMBER- 代码,然后在目录 ( $subjectDirectory ( 中扫描以相同代码开头的文件名。然后包含该文件。
我无法这样做,因为$finalNum将代码更改为"连续编码 5 次",所以我找不到要包含的正确文件。
它不起作用的原因是因为readdir()
只返回文件名,而不是完整路径。
试试这个: 包括( $subjectDirectory . $subjectFile (;
回复:/* 如果你在这里回显$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 )