完成PHP 和 HTML 的新手,所以这可能是一个男生错误。我正在尝试为我的工作建立一个小型 Intranet 站点。我希望能够显示本地文件的链接,例如公司手册、程序等。我的主要问题是它需要对 PC 和 MAC 用户友好(Mac 用户主要使用 Firefox,PC 使用 IE)。我有一个 PHP 脚本在我可以为 Mac 或 PC 单独工作但无法同时工作的每个页面上。例如,我希望我的代码查找用户操作系统并运行与显示该操作系统的本地文件链接相关的脚本部分。我相信脚本的关键部分是“文件///”如果它是“文件///”,它可以在 IE 和 Firefox 的 PC 上运行,但它需要是“文件”(没有三个 /' s) 在 Mac 上工作?但我在这个类比中可能是错的。当前代码如下;
<?php
//determine OS of user MAC or PC
$user_agent = getenv("HTTP_USER_AGENT");
if (strpos($user_agent, "Win") !== FALSE)
$os = "Windows";
else if((strpos($user_agent, "Mac") !== FALSE) || (strpos($user_agent, "PPC") !== FALSE))
$os = "Mac";
if ($os == "Windows")
{
//path to S:\One reality\Personnel\Culture & Values
$uncpath = "//servername/shared/one reality/personnel/culture & values/";
//get all files with a .pdf extension.
$files = glob($uncpath . "*.pdf");
//print each file name
foreach ($files as $file)
{
echo "<a target=_blank href='file:///$file'>".preg_replace("/\\.[^.\\s]{3,4}$/", "",basename($file))."</a><br><br>";
}
}
elseif ($os == "Mac")
{
//path to S:\One reality\Personnel\Culture & Values
$uncpath = "//servername/shared/one reality/personnel/culture & values/";
//get all files with a .pdf extension.
$files = glob($uncpath . "*.pdf");
//print each file name
foreach ($files as $file)
{
echo "<a target=_blank href='file:$file'>".preg_replace("/\\.[^.\\s]{3,4}$/", "",basename($file))."</a><br><br>";
}
}
?>
上面的代码在 PC 上运行良好,并以 pdf 格式打开一个新的 TAB,但在 Mac 上,没有三个斜杠,代码无法运行 Mac 特定的“文件:”,因此不知道如何显示本地文件链接。PS 我知道在 Firefox 中允许本地文件链接,并且已经到位,所以它基本上是一个编码问题。我怀疑我的 IF $os = 语句有问题。
如果您认为我走错了路,我已经准备好放弃这种方法并重新开始。