0

我想从 php 页面隐藏未使用的 js 和 css 文件。

某些页面未使用某些js文件,因此我想将它们隐藏起来。通过隐藏它们,我可以使网页更快并在 pagetest 中获得好成绩。

我使用简单的 php 代码来隐藏一页的代码。效果很好,该页面的文件是隐藏的,对于其他页面,代码不起作用。它显示的是 text 而不是 link ,就像 textarea 中的文本一样。

<?php
    function curPageName() {
        return substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1);
    }
    $currentp=curPageName();

    if($currentp=="main1.php"){
        echo "";
    } else { 
        //works 
        echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"../rws.css\"     />"; 
        /// not works 
        echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"http://img.y.com/rws.css\"     />"; 
    }
?>

该代码适用于/rws.css,如果我使用http://url.com/rws.css它不会。

4

2 回答 2

1

代码是否获得了正确的当前页面并且它正在进入 ELSE?

您可以使用单引号和双引号内的双引号来确保您不会错过任何转义。

if($currentp!="main1.php"){
  echo('<link type="text/css" rel="stylesheet" href="http://img.y.com/rws.css" />'); 
}
于 2012-07-16T23:27:03.407 回答
1

这里有一个例子:

<?php

function get_current_file_name () {
$Exploded_Data = explode(‘/’, $_SERVER['PHP_SELF']); //explode the path to current file to array
$Exploded_Data = array_reverse ($Exploded_Data); //reverse the arrays order cos php file name is always after last /
$CurrentPage = $Exploded_Data[0]; // assign the php file name to the currentpage variable
return $CurrentPage;
}

$CurrentPage = get_current_file_name ();

if($CurrentPage!="main1.php"){
    echo('<link type="text/css" rel="stylesheet" href="style1.css" />'); 
}
else if$CurrentPage!="main2.php"){
    echo('<link type="text/css" rel="stylesheet" href="style2.css" />'); 
}


?>

您可以使用__FILE__ 而不是 $_SERVER['PHP_SELF']

于 2012-07-16T23:43:00.170 回答