我想确定我所在的 PHP 文件install.php是否在子域/子目录中(基本上不在 domain.com/install.php 中)。
见下文
PHP中最简单的方法是确定是否在服务器的php.ini文件中启用了会话.我希望为我的PHP应用程序进行预安装检查,只需要检查一下.
如果我有一个静态HTML主页,有没有一种方法可以嵌入一些Javascript来查看我是否在主页上?我想要做的是如果用户不在主页上,在导航栏上显示"主页"按钮.所以,一旦我知道他是否在主页上,我就可以使用if-else语句.不熟悉如何在Javascript中执行此操作.我会在PHP中执行此操作,但由于项目的限制,我不允许使用PHP.此站点是纯HTML页面.
我需要Javascript来检测页面的原因是因为所有页面(包括主页)都是相同的模板(同样,不是我的决定).如果不是这样,我可以为每个页面创建一个模板,但主页.所以这让我遇到了问题.
我目前的想法是使用这样的东西:
<script type="text/javascript">
var sPath = window.location.pathname;
var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
if(sPage != "index.html"){
$turnonhomelink=true;
}
else{
$turnonhomelink=false;
}
</script>
Run Code Online (Sandbox Code Playgroud)
然后是链接:
<script type="text/javascript">
if ($turnonhomelink==true){
echo '<li><a href="#">Home</a></li>';
}
else{
//echo nada
}
</script>
Run Code Online (Sandbox Code Playgroud)
除了正常情况"如果Javascript没有开启,这将无效",有什么我想念的吗?
我最关心的一点是:if(sPage != "index.html")
重要的是要注意这个站点只有一层深度链接(一个目录中的所有HTML页面),但这是在Javascript中比较字符串的正确方法吗?
我使用PHP返回用户的浏览器用户代理问题是我想要打印的地方:我不希望长度超过每行大约30个字符.有没有办法将返回的变量(从我调用的函数中获取字符串)分解为一定长度的子字符串?由于UA字符串的长度不同,我不确定会发生什么.
这是我返回用户代理的PHP代码:
function __toString() {
return "Browser Name:
return "Browser Name: {$this->getBrowser()} \n" .
" Browser Version: {$this->getVersion()} \n" .
" Browser User Agent String: {$this->getUserAgent()} \n" .
" Platform: {$this->getPlatform()} ";
}
Run Code Online (Sandbox Code Playgroud)
特别是这个电话$this->getUserAgent.我用这个输出:
<?php require_once('browser.php'); $browser = new Browser(); echo $browser . "\n"; ?>
Run Code Online (Sandbox Code Playgroud)
现在,名称,版本和平台调用输出就像我想要的那样(因为在UA字符串中没有任何地方接近它们).
简而言之,如何拆分返回的用户字符串,使其每行不超过一定数量的字符?理想情况下,我想将它们存储到临时变量中,因为我必须在单词之间添加空格.例如,在它显示"平台"的地方,它前面有空格,因此它与浏览器版本垂直排列,然后是空格,以便从函数中返回的所有字符串的结果排成一行.
如果有人想在Github的代码上面看到我在做什么,函数调用在此上线339-243,并且呼应结果去这个上线152.
这就是我现在所拥有的:
$text1 = $this->getUserAgent();
$UAline1 = substr($text1, 0, 26);
$text2 = $this->getUserAgent();
$towrapUA = str_replace($UAline1, '', $text2);
$wordwrapped = chunk_split($towrapUA, 26, "\n\r");
Run Code Online (Sandbox Code Playgroud)
在这一点上唯一的问题是如何在每个包装代码之前获得恒定数量的空格?我需要(比方说)在所有包装线之前的20个空格进行格式化.