2012-03-27 4 views
1

필자가 작성한 페이지에 동적 링크를 추가하기 위해 다음을 사용하여 문제가 없지만 페이지에서 어떻게해야하는지 나타납니다. 그러나 도움이되지는 않지만 조금만 가고 있다고 생각합니다. 그것으로 작성된 방식으로 거꾸로 지저분 해 보입니다. 내가 한 줄에 모두 넣어 것처럼이 작동하지 않는 이유는 무엇입니까? ..PHP에서 동적 링크 추가

echo '<a href="./customer-files/'; 
     echo $customerID; 
     echo '/'; 
     echo $filename->getFilename(); 
     echo '">'; 
       echo $filename->getFilename(); 
    echo '</a>'; 

답변

0

나는 이런 식으로 접근하는 것 :

$safe_customer_id = htmlspecialchars(urlencode($customerID)); 
$safe_filename = htmlspecialchars(urlencode($filename->getFilename())); 
$safe_label = htmlspecialchars($filename->getFilename()); 
echo "<a href=\"./customer-files/$safe_customer_id/$safe_filename\">$safe_label</a>"; 
+0

감사합니다 :) 파일 이름에서도 공백을 제거합니까? –

+0

URL을 제거하지 않고 URL 대체 URL로 바꿀 것입니다.하지만 좋은 지적입니다. 표시되는 파일 이름에서 수행하면 안됩니다. (답변 됨) – Quentin

0

병합이 당신의 친구입니다, 그것을 작성하는 올바른 방법은 무엇입니까. .을 사용하면 여러 문자열 표현식을 하나로 결합 할 수 있습니다.

$fn = $filename->getFilename(); 
$link = $customerID . '/' . $fn; 
echo '<a href="'.$link.'">'.$fn.'</a>'; 
+0

그냥 보았고 사과합니다. 당신 말이 맞습니다. HTML5와 XHTML 모두 속성에 아포스트로피가 아닌 음성 마크가 필요합니다. 심지어 XML! ': -o' 나는 잘 몰랐다. – halfer

+0

@halfer, 좋아, 그럼 내 의견을 삭제하겠습니다! – Starx

0

나는이 함께 갈 것 것 어떻게 t의 예 출력을 연결합니다.

1

echo "<a href=\"./customer-files/{$customerID}/{$filename->getFilename()}\">{$filename->getFilename()}</a>"; 

Here와 시도의 많은 문서가 :

echo '<a href="./customer-files/'.$customerID.'/'.$filename->getFilename().'">'.$filename->getFilename()/'</a>'; 

더 좋은 방법은

$filename = $filename -> getFilename(); //cache the filename 
echo "<a href='/$customerId/$filename'>$filename</a>"; 
    //^On this echo NOTICE that variables can be DIRECTLY placed inside Double qoutes. 
+0

IDE에서 HTML을 강조 표시하지 않고 편집 할 때 가로 스크롤이 필요할 수 있으므로이 방법을 사용하지 않는 것이 좋습니다. 가능한 한 줄을 짧게해야한다고 생각합니다. – halfer

+0

아, 큰 따옴표가 아닌 작은 따옴표 안에 있기 때문에 변수가 확장되지 않습니다. – halfer

+0

작은 따옴표 문제를 해결했습니다. 첫 번째 의견에 대해서는 IDE에 대해 생각하지 않았습니다. 줄 길이에 대해서는 개인적인 취향의 문제 일뿐입니다. 어쨌든 고마워! –

0

을 템플릿 층을 사용하는 경우, 당신이 필요로하는 경우에만이 PHP로 탈출하는 더 나은 것입니다 :

<a href="./customer-files/<?php 
    echo $customerID . '/' . $filename->getFilename() 
?>"> 
    <?php echo $filename->getFilename() ?> 
</a> 

이렇게하면 IDE가 HTML과 PHP를 올바르게 강조 표시합니다. 나는 또한 모든 PHP가 단일 라인 얼룩에 있다고 보장했다. 이는 템플릿을위한 최선의 방법이다. (긴 명령문은 컨트롤러/스크립트에 추방되어야한다).