繁体   English   中英

使用数组简化在If语句中检查多个PHP页面

[英]Simplify checking multiple PHP-pages in If-statement using array

问题:

优化PHP代码,在到达多个页面之一时打印代码。

PHP代码:

if (substr(strrchr($_SERVER['PHP_SELF'], '/'), 1) == "part-c.php" || substr(strrchr($_SERVER['PHP_SELF'], '/'), 1) == "part-g.php" || substr(strrchr($_SERVER['PHP_SELF'], '/'), 1) == "part-j.php" || substr(strrchr($_SERVER['PHP_SELF'], '/'), 1) == "part-n.php" || substr(strrchr($_SERVER['PHP_SELF'], '/'), 1) == "part-q.php")
{
    echo 'Hello';
}

建议:

我在想是否将所有页面放在一个数组中并检查您所在的页面是否存在于该数组中是一个好主意。 其他建议如何解决这个问题?

是的,你是对的,你可以通过将所有页面放在数组中并使用in_array进行检查来减少代码。

$checkString = substr(strrchr($_SERVER['PHP_SELF'], '/'), 1);
$pages = array("part-c.php","part-g.php","part-j.php","part-n.php","part-q.php");

if(in_array($checkString,$pages)){
   echo 'Hello';
}

您也可以将文件放在一个txt文件中,该文件只能由服务器将其设置为CHMOD 0664来读取,然后列出这样的文件:

vPages.txt

part-c.php
part-g.php
part-j.php
part-n.php
part-q.php

然后运行像Rikesh建议的一些代码:

$page = substr( strrchr( $_SERVER['PHP_SELF'], '/' ), 1 );
$vPages = file( './vPages.txt' );

if ( in_array( $page, $vPages ) ) {
    // Seems legit...

}

并且您将能够轻松编辑文件以包含更多有效页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM