2011-11-21 2 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> : 는 "http://markdinwiddie.com/PHP2012/artwork/Drawings/Boy.jpg > http://markdinwiddie.com/artwork/Drawings/Boy.jpg이 내가해야 할 일이다" : //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/'부분을 것이다 당신은 당신의 데이터베이스에서 변수를 사용할 수 링크의 다른 섹션을 채우십시오. ($ 변수는 URL의 한 섹션이고 $ anothervariable은 URL의 두 번째 부분입니다.

이 에코 것이다 : (제공 $ 변수 = hi123, $ anothervariable = two2, 및 $ 제목 = 기울기)

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

희망이 당신의 질문에 대한 대답 (또는 적어도 도움) 그.

0

전체 경로가 가장 좋을 것입니다.

도메인 이름/하위 도메인에 대한 다른 변수를 만든 다음 링크에 전체 경로를 사용할 수 있습니다.

또한 스크립트가 정말 디렉토리 구조에 따라

1

echo gethostname(); 또는 php_uname('n');를 사용하여 주어진 순간에 실행중인 서버를 기반으로,이 조건 만들 수 있습니다. 아시다시피, ../은 현재 작업 디렉토리에서 한 레벨 위로 올라갈 것이고 /은 루트로 갈 것입니다. (참고 : 웹 서버 루트는 반드시 컴퓨터의 루트 디렉토리가 아닙니다.)

일관성을 위해 웹 서버 루트의 하위 디렉토리가 img 인 경우, /img/$filename은 항상 예상대로 해결되어야한다고 가정합니다.

0

경로가 (URL이 아님)이라고하면, /에서 시작하여 모든 경로가 하위 폴더에서 작동합니다.

따라서 하나 가져 오기는 /에서 시작하여 작동합니다. 전체 사이트에서도 작동합니다.

사이트 주소는 전혀 사용하지 않습니다. http://markdinwiddie.com은 다른 사이트 주소 지정에만 사용해야하므로 로컬 링크에 사용하면 안됩니다. 당신이 동적으로 작동하고 당신이 당신의 서버로 이동할 때 또한, fullpath에 변수를 확인하려면

0

은 같은 이미지를 호출 한 후 $dir = "http://markdinwiddie.com/PHP2012"; 또는 $dir = "/PHP2012"; 및 말 : 나는 아주 확실하지 않다

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

변수가 URL을 포함하고있는'$ dir'을 호출하지 않겠습니다. 그것은 자기 난독 화와 같습니다. –

+1

당신은 다시 ... 그가 '내 아들의 도메인 이름 아래의 하위 폴더'에서 테스트하고 있다고 말하는 부분을 알았습니까 ?? 그는 그것을 동적 필요합니까 ?? 프레임 워크에서 base_url 메소드를 금지 하시겠습니까? * rolleyes * – Shomz

3

절대 경로 URL을

절대 경로라고 그들은 도메인 이름을 포함하여 매우 구체적인 위치를 참조 때문. 웹 요소의 절대 경로는 종종 URL이라고도합니다. 예를 들어이 웹 페이지의 절대 경로는 다음과 같습니다. http://webdesign.about.com/library/weekly/aa040502a.htm

일반적으로 도메인과 절대 경로를 사용하여 사용자가 소유 한 다른 도메인에있는 웹 요소를 가리 킵니다. 예를 들어 그래픽 디자인 가이드의 사이트에 연결하려면 URL을 http://graphicdesign.about.com/에 포함시켜야합니다. 그래서 그녀 용어집 항목에 대한 링크는 다음과 같이 보일 것이다 :

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

내가있는 동일한 도메인에있는 웹 요소를 참조하는 경우 도메인 이름을 사용할 필요가 없습니다 귀하의 링크 경로에. 도메인을 떠나기 만하면되지만, 도메인 이름 뒤에 첫 번째 슬래시 (/)를 포함시켜야합니다.

예를 들어

, 초심자의 자원 센터는 URL이 : 나는 내 사이트의 다른 페이지에서이 URL에 링크한다면 http://webdesign.about.com/library/beginning/bl_begin.htm, 나는이 방법으로 링크 수 :

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

는 그것은이다 대부분의 웹 사이트에서 도메인 이름없이 절대 경로를 사용하는 것이 좋습니다. 이 형식을 사용하면 페이지를 배치하는 위치에 관계없이 링크 또는 이미지를 사용할 수 있습니다. 이것은 더 긴 링크를 사용하는 어리석은 이유처럼 보일 수 있지만 사이트의 여러 페이지와 디렉토리에서 코드를 공유하는 경우 절대 경로를 사용하면 유지 관리 속도가 빨라집니다.

상대 경로는

상대 경로는 링크가에있는 어떤 페이지에 따라 URL 변경. 페이지와 동일한 디렉토리에

링크가 어떤 경로 정보 항에 슬래시 /매주 파일 이름 링크까지 하나없이 파일 이름이 하위 디렉토리가 나열되어 표시되지 않은 : 상대 경로를 사용하여 링크를 만드는 몇 가지 규칙이 있습니다

편집중인 페이지의 위치를 ​​결정합니다 : 디렉토리는 상대 경로를 확인하는 방법에

../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

Hi Basil, 의도적으로 서식을 지정했거나 도움이 필요하십니까? – bummi