PHP是否可以将行号添加到FILE_GET_CONTENTS()

时间:2020-12-22 作者:Michael

我有一个专用的自定义插件,我只在我的多个站点上使用,由于我做了很多调试,我发现包含wp配置更容易。管理区域中的php文件内容,以确保已正确启用/禁用调试。现在我正在培训其他设计师来帮助调试,所以我想包括类似于主题/插件编辑器的行号。我使用file_get_contents() 作用有没有办法将行号添加到此输出中?

下面是获取wp config文件内容的函数:

function eriWpConfig(){
    $wp_config = FALSE;
    if ( is_readable( ABSPATH . \'wp-config.php\' ) )
        $wp_config = ABSPATH . \'wp-config.php\';
    elseif ( is_readable( dirname( ABSPATH ) . \'/wp-config.php\' ) )
        $wp_config = dirname( ABSPATH ) . \'/wp-config.php\';

    if ( $wp_config )
        $code = esc_html( file_get_contents( $wp_config ) );
    else
        $code = \'wp-config.php not found\';

    echo \'<pre class="code"
            >Installation path: \' . ABSPATH
          . "\\n\\n"
          . $code
          . \'</pre>\';
}
EDIT:根据Q Studio的建议,我尝试了以下操作,我只是在输出的开头返回第0行。

if ( $wp_config ) {
        $string = file_get_contents( $wp_config );
        $lines = explode(\'\\n\', $string);
        $modified_lines = [];
        $line_count = 0;
        
        foreach($lines as $line){
            $modified_lines[] = \'Line \'.$line_count.\' \'.$line;
        }
        
        $code = esc_html( implode(\'<br>\', $modified_lines) );
        
    } else {
        $code = \'wp-config.php not found\';
    }

2 个回复
SO网友:Michael

在Q Studio和我自己研究的帮助下,我发现使用PHP\\U EOL进行爆炸是可行的。这是我修改过的代码:

function eriWpConfig(){
    $wp_config = FALSE;
    if ( is_readable( ABSPATH . \'wp-config.php\' ) )
        $wp_config = ABSPATH . \'wp-config.php\';
    elseif ( is_readable( dirname( ABSPATH ) . \'/wp-config.php\' ) )
        $wp_config = dirname( ABSPATH ) . \'/wp-config.php\';

    if ( $wp_config ) {
        $string = file_get_contents( $wp_config );
        $lines = explode(PHP_EOL, $string);
        $modified_lines = [];
        $line_count = 0;
        
        foreach($lines as $line){
            $modified_lines[] = \'<span style="color: #ccc;">Line: \'.sprintf("%03d", $line_count).\' | </span>\'.esc_html($line);
            $line_count ++; 
        }
        
        $code = implode(\'<br>\', $modified_lines);
        
    } else {
        $code = \'wp-config.php not found\';
    }
    
    echo \'<pre class="code"
            >Installation path: \' . ABSPATH
          . "\\n\\n"
          . $code
          . \'</pre>\';
}

SO网友:Q Studio

可能类似于:

if ( $wp_config ) {         
    
    $string = file_get_contents( $wp_config );         
    $lines = explode(\'\\n\', $string);         
        
    $line_count = 0;                  
    
    foreach( $lines as $line ){

        $code .= \'Line: \'.$line_count.\' | \'.$line.\'<br />\';         

        // iterate count ##
        $line_count ++;      

    }              
    
} else {         
    
    $code = \'wp-config.php not found\';     
    
}