来自img,a和header的文件的相对路径

时间:2012-07-28 01:53:20

标签: php html .htaccess dynamic friendly-url

我有一个动态网站,可以作为域/类别或域/类别/文章进行访问,并重定向到domain / index.php?category / article。

我面临的问题是我想使用文件中的相对路径。我设法为包含dirname( FILE )的内容执行此操作,如

ini_set('include_path',  dirname(__FILE__) . '/include');

这很好用。  根据我将其更改为的目录,它也可以使用

ini_set('include_path', dirname(__FILE__) . '/../include'); (extra /../)

但是如果我尝试用img src,A href或php Header做同样的事情,当我得到图像或链接的正确文件路径时,它们根本不起作用。没有任何事情发生,好像我根本没有点击。     点击通过php生成的链接:

print "<a href='" . dirname(__FILE__)  . strtolower(str_replace(" ", "", $row['pageSection'])) . "/" . strtolower(str_replace("", "-", $row['pageTitle'])) . "' alt=''  >";     

即使html源代码读取为:

,也不起作用
 <a href="C:\validpath\htdocs\domain/category/article>

如何创建相对于文件位置的img,link(和php标题)的路径,而不是url,并让它工作?

旁注:如果我通过domain / prettyurl /访问我的网站,即使我的CSS也会刹车,但如果我通过domain / prettyurl访问(没有结束斜杠)则不行,非常奇怪。

2 个答案:

答案 0 :(得分:0)

看起来你在本地主机上运行你的php所以

dirname(__FILE__) 

正在返回一个目录 即“C:\ validation ...”

尝试使用

 "'http: //' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/include'"

作为您的包含路径

答案 1 :(得分:0)

让它在本地主机和在线工作,这是我的设置:

1)您可以自己使用它  2)为新手提供更好的替代方案

我使用了zoranc上面说的话。例如,要让CSS在dynamic-pretty-url页面上工作,我将其设置为:

<?php
print "<link href='http://" . $_SERVER['HTTP_HOST'] .'/' . dirname($_SERVER['PHP_SELF']) . "/CSS/main.css' rel='stylesheet' type='text/css' />";

&GT;

警告:上面的代码将生成Domain /// CSS等链接。我仍然需要过滤掉额外的斜杠,但它的工作原理就像CSS和其他一切一样(img,a,php header)

然后我每次都想要这样做:

  1. 创建动态链接
  2. 创建动态img
  3. 即使是我的标题表单!由于我的标题始终包含在内,当您浏览漂亮网址时,您的表单无法使用action ='header.php',因为它会尝试在您当前正在浏览的任何漂亮网址上找到它(域/类别) /文章等)。您将不得不使用header ='“php我们正在讨论的解决方案/ header.php endphp。

    再一次,要注意这会产生额外的斜线,你必须以某种方式删除它们。

    使用此设置,您可以拥有一个适用于您的localhost和任何Web主机的站点,而无需更改代码,但它有点麻烦并且容易出错。如果有人有更好的解决方案,请分享。

    这种方法效果很好,而且在我看来,每次上传网站时都必须更改代码,这比我想象的更容易出错。

    再次感谢Zoranc,非常有帮助。

相关问题