PHP:变量改变值似乎没有任何理由


PHP: Variable changes value without seemingly any reason

$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 )