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

时间:2012-03-08 20:33:23

标签: php

$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次代码”,所以我找不到要包含的正确文件。

1 个答案:

答案 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 )