使用 PHP 中的函数添加 CSS
Adding CSS using function in PHP
我尝试使用这样的统计函数将 CSS
文件添加到我的 html
文件中:
public static function addCSS($file){
$cssPath = $_SERVER['DOCUMENT_ROOT']. DIRECTORY_SEPARATOR. 'new'.
DIRECTORY_SEPARATOR. 'css/'.$file;
return file_exists($cssPath) ? "
<link rel=\"stylesheet\" href=\"$cssPath\" type=\"text/css\"
media=\"screen\" charset=\"utf-8\" />
" : "CSS File not found";
}
但它没有像我预期的那样工作。我希望它在调用时生成像“http:localhost/new/css/admin.css 这样的 CSSPath
General::addCSS('admin.css');
但我得到的只是这样的地址,这让我无法包括:C:/xampp/htdocs\new\css/admin.css。我该如何解决这个寻址问题?
您正在使用 xampp,因此文档根路径将来自 "Server"。这就是路径错误的原因。在移动到服务器之前,您需要专门指定所需的路径。
此外,如果您使用的是共享主机计划,文档根目录在大多数情况下都无法使用。使用服务器根路径设置一个常量,以便您可以像使用 DOCUMENT_ROOT.
一样使用它
//Create root path
define('ROOT', 'something/anotherthing/public_html');
public static function addCSS($file){
//use root path everywhere instead of document_root
$cssPath = ROOT . DIRECTORY_SEPARATOR. 'new'.
DIRECTORY_SEPARATOR. 'css/'.$file;
return file_exists($cssPath) ? "
<link rel=\"stylesheet\" href=\"$cssPath\" type=\"text/css\" media=\"screen\" charset=\"utf-8\" />
" : "CSS File not found";
}
$_SERVER['DOCUMENT_ROOT']
、returns 就是这样,一个目录路径而不是 URL。如果您希望 URL 进入您的站点,请尝试使用:
"http://{$HTTP_HOST}{$REQUEST_URI}"
因此,在您的情况下它将是:
$REQUEST_URI= 'css/admin.css'
$cssPath = "http://{$HTTP_HOST}{$REQUEST_URI}";
您不能将 $_SERVER['DOCUMENT_ROOT']
用于 $cssPath
,因为它将是一个系统文件路径,您需要一个 url。如果您真的想以这种方式实现此功能,请尝试:
public static function addCSS( $file ){
$css_dir = DS . 'new'. DS . 'css'. DS;
$css_file = $_SERVER['SERVER_NAME'] . $css_dir . $file;
$css_file_path = $_SERVER['DOCUMENT_ROOT'] . $css_dir . $file;
return file_exists( $css_file_path ) ? '<link rel="stylesheet" href="'.$css_file.'" type="text/css" media="screen" />' : false;
}
不过,我的建议是重新考虑您解决问题的方法。
DOCUMENT_ROOT
将 return 只是文档路径,但是要包含 css 你需要绝对或相对 urls.You 可以尝试使用 $_SERVER['HTTP_HOST']
public static function addCSS( $file ){
$css_dir = DS . 'new'. DS . 'css'. DS;
$css_file = 'http://'.$_SERVER['HTTP_HOST'] . $css_dir . $file;
$css_file_path = $_SERVER['DOCUMENT_ROOT'] . $css_dir . $file;
return file_exists( $css_file_path ) ? '<link rel="stylesheet" href="'.$css_file.'" type="text/css" media="screen" />' : false;
}
我尝试使用这样的统计函数将 CSS
文件添加到我的 html
文件中:
public static function addCSS($file){
$cssPath = $_SERVER['DOCUMENT_ROOT']. DIRECTORY_SEPARATOR. 'new'.
DIRECTORY_SEPARATOR. 'css/'.$file;
return file_exists($cssPath) ? "
<link rel=\"stylesheet\" href=\"$cssPath\" type=\"text/css\"
media=\"screen\" charset=\"utf-8\" />
" : "CSS File not found";
}
但它没有像我预期的那样工作。我希望它在调用时生成像“http:localhost/new/css/admin.css 这样的 CSSPath
General::addCSS('admin.css');
但我得到的只是这样的地址,这让我无法包括:C:/xampp/htdocs\new\css/admin.css。我该如何解决这个寻址问题?
您正在使用 xampp,因此文档根路径将来自 "Server"。这就是路径错误的原因。在移动到服务器之前,您需要专门指定所需的路径。
此外,如果您使用的是共享主机计划,文档根目录在大多数情况下都无法使用。使用服务器根路径设置一个常量,以便您可以像使用 DOCUMENT_ROOT.
一样使用它 //Create root path
define('ROOT', 'something/anotherthing/public_html');
public static function addCSS($file){
//use root path everywhere instead of document_root
$cssPath = ROOT . DIRECTORY_SEPARATOR. 'new'.
DIRECTORY_SEPARATOR. 'css/'.$file;
return file_exists($cssPath) ? "
<link rel=\"stylesheet\" href=\"$cssPath\" type=\"text/css\" media=\"screen\" charset=\"utf-8\" />
" : "CSS File not found";
}
$_SERVER['DOCUMENT_ROOT']
、returns 就是这样,一个目录路径而不是 URL。如果您希望 URL 进入您的站点,请尝试使用:
"http://{$HTTP_HOST}{$REQUEST_URI}"
因此,在您的情况下它将是:
$REQUEST_URI= 'css/admin.css'
$cssPath = "http://{$HTTP_HOST}{$REQUEST_URI}";
您不能将 $_SERVER['DOCUMENT_ROOT']
用于 $cssPath
,因为它将是一个系统文件路径,您需要一个 url。如果您真的想以这种方式实现此功能,请尝试:
public static function addCSS( $file ){
$css_dir = DS . 'new'. DS . 'css'. DS;
$css_file = $_SERVER['SERVER_NAME'] . $css_dir . $file;
$css_file_path = $_SERVER['DOCUMENT_ROOT'] . $css_dir . $file;
return file_exists( $css_file_path ) ? '<link rel="stylesheet" href="'.$css_file.'" type="text/css" media="screen" />' : false;
}
不过,我的建议是重新考虑您解决问题的方法。
DOCUMENT_ROOT
将 return 只是文档路径,但是要包含 css 你需要绝对或相对 urls.You 可以尝试使用 $_SERVER['HTTP_HOST']
public static function addCSS( $file ){
$css_dir = DS . 'new'. DS . 'css'. DS;
$css_file = 'http://'.$_SERVER['HTTP_HOST'] . $css_dir . $file;
$css_file_path = $_SERVER['DOCUMENT_ROOT'] . $css_dir . $file;
return file_exists( $css_file_path ) ? '<link rel="stylesheet" href="'.$css_file.'" type="text/css" media="screen" />' : false;
}