PHP的basename()函数在HTML链接标签中未输出预期值的问题求助
问题原因
你在HTML链接标签里的PHP代码仅调用了basename()函数,但没有输出它的返回值。PHP不会自动渲染函数的返回结果,必须显式使用echo或print指令,才能将内容输出到HTML中。这就导致链接的href部分只保留了.css后缀,中间的文件名缺失。
解决方法
在basename()函数前添加echo,让PHP输出函数的返回结果:
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/Photogram/css/' . basename($_SERVER['PHP_SELF'], ".php") . ".css")) { ?> <link href="/Photogram/css/<?php echo basename($_SERVER['PHP_SELF'], ".php") ?>.css" rel="stylesheet"> <?php } ?>
优化建议
为避免重复调用basename()函数(提升性能),可以先将文件名存为变量,再在判断和链接中复用:
$pageName = basename($_SERVER['PHP_SELF'], ".php"); $cssPath = $_SERVER['DOCUMENT_ROOT'] . '/Photogram/css/' . $pageName . ".css"; if (file_exists($cssPath)) { ?> <link href="/Photogram/css/<?php echo $pageName ?>.css" rel="stylesheet"> <?php } ?>
内容的提问来源于stack exchange,提问作者Klinton A
相关产品推荐
相关产品推荐

