图片SRC ="/"一条适用于所有情况的道路


img src ="/" a path that works in all situations

我正在重写我的网站,将其从ColdFusion更改为PHP。而我正在进行更改和测试,我使用我儿子的域名下的子文件夹。我遇到了一个问题,我以前见过,但我已经能够解决它之前,把几个…或者/在路径的前面。

在测试过程中,我发现这些路径有些有效,有些无效;这看起来有点随意。所以,这使得测试有点困难,事实上,在我正在处理的一个页面上,我根本无法让路径工作,除非我把完整的路径放进去。然而,这会破坏使用数据库的目的。

(是的,PHP变量正在工作)

有谁知道一个确定的修复?

<img src="..$ArtFilePath" title="$Title" alt="$Title"> 
<img src="/$ArtFilePath" title="$Title" alt="$Title">
<img src="/PHP2012/$ArtFilePath" title="$Title" alt="$Title">
<img src="http://markdinwiddie.com/PHP2012/artwork/Drawings/Boy.jpg" title="$Title" alt="$Title">

我不太确定你想要什么,但你可以有这样的:

<img scr="http://markdinwiddie.com/PHP2012/<?php echo $variable; ?>/<?php echo $anothervariable; ?>/" title="<?php echo $Title; ?>" alt="<?php echo $Title; ?>">

URL的'http://markdinwiddie.com/PHP2012/'部分已经到位,然后您可以使用数据库中的变量来填充链接的其他部分。$variable是URL的一部分,$anothervariable是URL的第二部分。

这将返回:(提供$variable=hi123, $anothervariable=two2, and $title=tilt)

<img scr="http://markdinwiddie.com/PHP2012/hi123/two2/" title="tilt" alt="tilt">

希望这能回答你的问题(或至少有所帮助)。

绝对路径的url

绝对路径被称为绝对路径,因为它们引用了非常具体的位置,包括域名。Web元素的绝对路径通常也称为URL。例如,此网页的绝对路径为:http://webdesign.about.com/library/weekly/aa040502a.htm

您通常使用该域的绝对路径来指向与您自己的域不同的另一个域中的Web元素。例如,如果我想链接到平面设计指南的网站-我需要在URL中包含域名:http://graphicdesign.about.com/。因此,指向她的词汇表条目的链接应该如下所示:

<a href="http://graphicdesign.about.com/library/glossaries/web/blabsoluteurl.htm"> ...</a>

如果您引用的Web元素与您所在的域名相同,则不需要在链接路径中使用域名。只需省略域名,但要确保在域名后包含第一个斜杠(/)。

例如,初学者资源中心的URL是:http://webdesign.about.com/library/beginning/bl_begin.htm如果我要从我的网站上的另一个页面链接到这个URL,我可以这样链接到它:

<a href="/library/beginning/bl_begin.htm">...</a>

在大多数网站上使用绝对路径而不带域名是个好主意。这种格式确保链接或图像无论放在哪里都可以使用。这似乎是一个愚蠢的理由来使用更长的链接,但如果你在你的网站上的多个页面和目录共享代码,使用绝对路径将加快你的维护速度。

相对路径url

相对路径的变化取决于链接所在的页面。使用相对路径创建链接有几个规则:

与该页位于同一目录中的

链接没有列出路径信息文件名列出的子目录没有前面的斜杠每周/文件名指向一个目录的链接被列为

../filename

如何确定相对路径:

确定正在编辑的页面的位置。这篇文章位于我网站的/library/weekly文件夹中。确定要链接到的页面或图像的位置。初学者资源中心位于这里:/library/beginning/比较位置并决定如何指向它从本文开始,我将需要向上移动一个目录(to/library),然后返回到起始目录使用上面列出的规则编写链接:...

这实际上取决于您的目录结构。我相信您知道,../将从当前工作目录上升一级,/将进入根目录。(注意:你的web服务器的根目录,不一定是你的机器的根目录)

为了一致性,假设你在你的web服务器根目录下有一个名为img的子目录,那么/img/$filename应该总是解析到你期望的内容。

<?php
$path1='C:/ff/ss.html';
$file=file_get_contents($path 1);
$dom = new DOMDocument;
@$dom->loadHTML($file);
$links = $dom->getElementsByTagName('img');
//extract img src path from the html page 
foreach ($links as $link)
    {        
        $re= $link->getAttribute('src');
        $a[]=$re;
    }
$oldpth=explode('/',$path1);
$c=count($oldpth)-1;
$fname=$oldpth[$c];
$pth=array_slice($oldpth,0,$c);
$cpth=implode('/',$pth);
foreach($a as $v)
    {
        if(is_file ($cpth.'/'.$v))
            { 
                $c=explode('/',$v);
                $c[0]="xyz007";
                $f=implode('/',$c);
                $file=str_replace ($v,$f,$file);
            }
    }
$path2='C:/mail/newpath/';
$wnew=fopen($path2.$fname,'w+');
fwrite($wnew,$file);
?>

完整路径是最好的。

你可以为域名/子域名创建另一个变量,然后在你的链接中使用完整路径。

您也可以根据脚本在给定时刻运行的服务器,使用echo gethostname();php_uname('n');

说到路径(不是url),从/开始的所有内容都是绝对路径,并且可以从任何子文件夹中工作。

因此,从/开始并工作-它也将通过整个网站工作。

站点地址根本没有用。http://markdinwiddie.com只能用于其他站点,不应该用于本地链接。

如果你想让它动态工作,也当你把它移动到你的服务器,使一个完整的路径变量,说$dir = "http://markdinwiddie.com/PHP2012";$dir = "/PHP2012";,然后调用你的图像,如:

<img src="$dir/$ArtFilePath" title="$Title" alt="$Title">