2009-10-16 3 views
1

프레임 워크 나 다른 라이브러리를 가리키는 답변을 삼가 해 주시면 감사하겠습니다. 나는 그것들을 알고 있으며, 빠른 해킹을위한 경험에 기초한 답이 많다.php와 html을 섞음

<html> 
     <head> 
      <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
      <title>Page Title</title> 
     </head> 
     <body> 
     // something is going to happen here, could be more html, or php 
     </body> 
</html> 

이의 당신이 페이지의 수백을해야합니다 가정 해 봅시다 몇 가지 기본 HTML로

시작은 물론, 당신은 더 적은 코드 중복을 가지고하는 방법으로이 문제를 모듈화하고 싶다.

나는 많은 전술을보고, 사용하고 논쟁했습니다.

header.inc.php

<html> 
     <head> 
      <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
      <title>Page Title</title> 
     </head> 
     <body> 

footer.inc.php

 </body> 
</html> 

PHP 페이지의 당신의 수백의 모든 스텁 :

기본이 방법은,

<?php include 'header.inc.php'; ?> 
    // html or other php can go here 
<?php include 'footer.inc.php'; ?> 

더 멋진 ittle, 그리고 var.inc.php가 있고 $ page_title을 설정하고 첫 번째 include 앞에서 수백 페이지를 편집하는 시간을 절약 할 수 있습니다.

기능 방법 :

show.inc.php

function display_header($page_title) { 
    echo " 
    <html> 
      <head> 
       <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
       <title>$page_title</title> 
      </head> 
      <body>"; 

} 

당신은 바닥 글에 대한 동일한 작업을 수행, 난 당신이 아이디어를 얻을 생각한다. 저는 많은 사람들이이 시점에서 생각하는 대상을 알고 있습니다. 나는이 토론을 피하고 싶습니다.

아주 어린 아이에게 몇 가지 원칙을 가르치려고하거나 디자이너가 현대 시대의 어떤 형태로 옮겨 가려한다고 생각하십시오.

어떤 방법을 사용하면 브라우저에서 HTML과 PHP의 결과를 볼 것인지를 결정할 수 있습니다. 브라우저에 닿는 소스 출력에 대한 탭 구분과 구조가 매우 명확합니다. 그리고 대부분의 경우 사이트 소스를 살펴보면 html이 꽤 심해요. 한 줄 또는 다양한 형태의 들여 쓰기.

간단한 방법으로 어떻게 해결할 수 있습니까?

display_header() 함수는 \ t의 모든 곳이나 편집기에 따라 렌더링 된 출력을 엉망으로 만드는 공간에 침을 뱉어합니다.

이 옵션 : 다음

function display_header($page_title) { 
    echo '<html>'; 
    echo '<head>'; 
    echo "\t" . '<meta http-equiv="Content-type" content="text/html; charset=utf-8" />'; 
    echo "\t" . '<title>' . $page_title . '</title>'; 
    echo '</head>'; 
    echo '<body>'; 

} 

, 당신의 경우에 얻을 :

echo '<table>'; 
foreach ($variable as $item) { 
     echo '<tr><td>' . $item . '</td></tr>'; 
} 
echo '<table>'; 

echo "\t" . '<table>' . "\n"; 
foreach ($variable as $item) { 
     echo "\t\t". '<tr><td>' . $item . '</td></tr>' . "\n"; 
} 
echo "\t" . '<table>' . "\n"; 

대 그리고 지금, 당신은 정말 엉망을 만들었습니다 당신의 PHP. 그래서 출력 버퍼를 생각하기 시작합니다. 그리고 나는 그 개념으로 디자이너를 완전히 놀라게 할 것입니다.하지만 난 그냥 자랑스러워 할 PHP와 더 많은 HTML을 혼합했습니다.

그리고 솔직히이 물건과 함께 정착 할 수 없었습니다 :

<?php foreach ($variable as $item) { ?> 
.... 
<?php } ?> 

모두 수익률이 훨씬 더 HTML을 생성하지만, 나에게, 그것은 또한 더 복잡한 PHP 파일을 얻을 수 있습니다. 꽤 기본적인 질문입니다. 몇 가지 강력한 의견과 프레임 워크 및 OOP를 추진하려는 욕망이있을 것입니다. 나는 그 방법을 이해하지만, 프로그래밍에 대한 열정을 결코 가지지 않을 사람에게 도구를 제공하고, 효율적으로 도움이되는 방법으로 물건을 얻고 자하는 최상의 제안을 찾고 있습니다.

+1

귀하의 질문 *이 무엇인지 분명하지 않습니다. HTML 소스의 들여 쓰기에 관한 비트는 약간의 모피입니다. 왜냐하면 HTML이 실제로 신경 쓰지 않기 때문입니다. – pavium

+1

여기 어딘가에 질문이 있습니까? 아니면 그냥 잘못된 블로그 게시물입니까? – cletus

+0

"본질적으로 예쁜 HTML 코드를 출력하려면 어떻게해야합니까?" – dnagirl

답변

6

PHP를 작성할 때 HTML 출력의 들여 쓰기에 대해서는 잊어 버리십시오. 그렇지 않으면 당신은 너무 사소한 것에 대해 너무 많은 시간을 걱정하고 있습니다.

디자이너가 쉽게 읽을 수 있도록 HTML 출력을 정리해야하는 경우 Tidy을 통해 실행하십시오. 이것이 비효율적이라고 생각한다면, 제작 과정이 아닌 개발 단계에서만이 작업을 수행하면됩니다.

1

소스를 볼 때 HTML 레이아웃에 대해 정말로 신경 쓰는다면 HTML을 빌드하면 PHP Tidy를 볼 수 있습니다. 들여 쓰기와 다양한 설정과 같은 다양한 옵션을 사용하여 출력 할 수 있습니다. 코드가 더 복잡 성장하고 디자인을 더 복잡, 나는 당신이 템플릿이 대답은 찾을 생각으로

http://us3.php.net/manual/en/book.tidy.php

1

를 참조하십시오. 결국, 프리젠 테이션은 로직과 분리되어야하며 이것은 MVC 모델의 핵심입니다.

나는 개인적으로 난 당신이 마지막 조각에 혐오감을 다시 평가해야한다고 생각 Smarty

+0

그들이 사용하는 하위 언어의 구문을 어느 정도 알 수 있는지 잘 모르겠습니다. 꼬투리 퓨전 퓨전 시대의 것들처럼 냄새가납니다.좀 더 자세히 조사해야합니다. 이것은 아마도 잘못되었지만 멋지게 작동하는 방법에 대해 생각해 보면 많은 부분이 엿 들었을 것입니다. 나는 그것이 매우 캐시 구동이지만 캐시에서 읽을 수 없게 될 페이지의 경우 본질적으로 찾을 수있는 보트로드가 있고 그 일이 바뀝니다. 비싼 물건. 제안을 주신 데 대해 다시 한번 감사 드리며, 나는 실제로 그것을 확실하게 읽고 내가 생각해내는 것을 볼 것입니다. – user170579

1

을 좋아합니다. PHP는 템플릿 언어로서 최고입니다. 그런 식으로 사용하면 쉽게 디자인 모형을 가져 와서 동적 페이지로 변환 할 수 있습니다. 또한 표준 HTML 도구를 사용하여 ZenCoding을 살펴보면 내가 말하는 것에 대한 예가 나와 있습니다. 구문 강조와 나머지 모든 이점을 사용할 수 있습니다. 또한 여분의 노력없이 들여 쓰기와 일관성을 약간 유지할 수 있습니다.

이제 지저분하고 추악한 것들로 인해 느끼는 긴장감을 이해합니다. 핵심은 복잡한 논리를 템플릿에서 순수 PHP 파일로 분리하여 템플릿 파일이 PHP보다 HTML처럼 느껴지도록하는 것입니다. iddqd는 Smarty를 템플릿 언어로 사용하는 것을 제안하지만 Smarty를 결코 좋아하지 않았습니다. 나는 이것이 유용한 추상화가 아니라 단지 무의미한 방향 전환이 될 것이라고 생각한다.

모든 프로그래밍 언어 중에서 PHP는 템플릿 언어로서 최고의 언어 중 하나입니다. 다른 프로그래밍 언어처럼 파괴 할 필요가 없습니다.

+0

감사합니다. 나는 마지막 스 니펫에 익숙해 져야 할 것 같아. 나는 그것의 많은 것을 wordpress 템플렛에서 본다. html 프리젠 테이션에서 코드 로직을 완전히 분리하는 것이 좋을 것입니다. 를 사용하면 아주 잘 할 수 있습니다. 내 가장 큰 문제는 인데, 그 중 하나가 나를 죽이는 것 같아요 :) 나는 zencoding에 대해 살펴볼 것입니다. 그리고 Smarty를 다시 보게 될 것입니다. 마지막으로 살펴 보았지만, 나는 똑같은 생각을했습니다. 당신이 그랬던 것처럼. 다시 감사합니다. – user170579