2011-11-21 24 views
2

我重寫我的網站,改變了它的ColdFusion從PHP的作品。在我進行更改和測試時,我正在使用我兒子的域名下的子文件夾。我遇到了一個我以前見過的問題,但我之前已經能夠通過在路徑前面放置幾個...或/來解決這個問題。IMG SRC =「/」的路徑,在所有情況下

測試時我發現,一些這些路徑的工作,和一些不;這似乎有點隨意。所以,這使得它有點難以測試,事實上在我正在處理的其中一個頁面上,除非我放上完整的路徑,否則我根本無法獲得工作路徑。但是,這會破壞使用數據庫的目的。

(是的,在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"> 
+0

沒有什麼可以解決的。你使用相對的鏈接,所以你應該知道它們是如何工作的。例如。通過閱讀他們:http://www.motive.co.nz/glossary/linking.php - 權威的定義是在這裏:http://tools.ietf.org/html/rfc3986/http://tools.ietf。 org/html/rfc3986#section-4.2 – hakre

+0

如果你需要移動東西,最好的選擇是相對路徑,加上''。 –

+0

嘿馬克,這些文章是有幫助的,但我已經嘗試過所有我能想到的組合,並得到各種迴應,但我需要的。 「> http://markdinwiddie.com/artwork/Drawings/Boy.jpg這是一個我需要:http://markdinwiddie.com/PHP2012/artwork/Drawings/Boy.jpg 」> HTTP ://markdinwiddie.com/PHP2012/.../artwork/Drawings/Boy.jpg –

回答

0

我不太清楚是什麼你想要的,但你可以有這樣的:

<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的第二部分。

這將回聲:(提供$變量= hi123,$ anothervariable = two2,和$標題=傾斜)

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

希望這回答你的問題(或至少幫助)。

0

完整路徑將是最好的。

您可以創建的域名/子域另一個變量,然後在你的鏈接使用完整路徑。

你也可以把它有條件的,基於在腳本運行在給定時刻,使用echo gethostname();php_uname('n');

1

這真的取決於你的目錄結構的服務器上。正如我敢肯定你知道,../將從當前工作目錄進入上一層,並/將去根。 (注意:您的Web服務器根目錄,不一定是您計算機的根目錄。)

爲了保持一致性,假設您有一個名爲img的Web服務器根目錄的子目錄,那麼/img/$filename應始終解析爲您期望的內容。

0

說到路徑,(非網址),從/開始的所有內容都是絕對路徑,可以從任何子文件夾中運行。

因此,得到一個從/開始和作品 - 它會通過整個網站的正常工作。

沒有爲網站的地址都沒有用。 http://markdinwiddie.com必須僅用於解決其他網站,不應該用於本地鏈接。

0

如果你想讓它動態地工作,還當你將它移動到你的服務器,使FULLPATH變量,說$dir = "http://markdinwiddie.com/PHP2012";$dir = "/PHP2012";,然後打電話給你的圖片,如:

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

我不會調用'$ dir'變量包含一個URL。這就像一個自我迷惑。 –

+1

你再次......注意到他說他在'我兒子的域名下的子文件夾'中測試它的部分?他需要它的動態?你甚至會禁止框架中的base_url方法嗎? * rolleyes * – Shomz

3

絕對路徑的URL

絕對路徑被稱爲是因爲他們指的是非常具體的位置,包括域名。 Web元素的絕對路徑通常也稱爲URL。例如,此網頁的絕對路徑爲:http://webdesign.about.com/library/weekly/aa040502a.htm

您通常使用帶域的絕對路徑指向位於另一個域之外的Web元素。例如,如果我想鏈接到平面設計指南的網站 - 我需要在網址中包含域名:http://graphicdesign.about.com/。所以,她的詞彙條目的鏈接應該是這樣的:

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

如果你指的是對你是在同一個域中的Web元素,你並不需要使用域名在你的鏈接的路徑。只需離開域名,但一定要在域名後面加上第一個斜槓(/)。

例如,初學者的資源中心的網址:http://webdesign.about.com/library/beginning/bl_begin.htm如果我從另一個網頁上我的網站鏈接到這個網址,我可以鏈接到它以這種方式:

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

這是一個好主意在絕大多數網站上使用絕對路徑,沒有域名。這種格式可確保鏈接或圖片無論放置在何處都可以使用。這可能看起來像使用更長鏈接的一個愚蠢的理由,但是如果您在網站上的多個頁面和目錄之間共享代碼,使用絕對路徑將加速您的維護。

相對路徑

相對路徑變化取決於哪個頁面的鏈接位於網址。有一些規則使用相對路徑創建鏈接:在同一個目錄

鏈接的頁面中沒有任何路徑信息 名 子目錄列沒有任何前斜線 每週/文件名 鏈接了一個目錄中被列爲

../filename 

如何確定的相對路徑:

確定您正在編輯的頁面的位置。 此文章位於我的網站上的/library/weekly文件夾中。 確定要鏈接到的頁面或圖像的位置。 初學者的資源中心位於:/library/beginning/ 比較的位置,並決定如何指向它 從這篇文章中,我需要一步一個目錄(to/library),然後返回到起始目錄 寫使用上面列出的規則鏈接: ...

1
<?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); 
?> 
+0

嗨羅勒,是格式故意還是需要一些幫助? – bummi

相關問題