2016-09-19 2 views
-1

작은 브라우저 기반 캔버스 게임을 만들었습니다. 임 괜찮아요 자바와 jquery하지만 난 PHP와 평범한 경험을 가지고 특히 PHP를 기반으로 웹 페이지를 만드는.PHP를 사용하여 HTML 페이지 만들기

현재 어떤 작업을 수행하고 있습니까? $_GET을 검사하여 일부 데이터베이스 데이터를 검색하고 있습니다. 해당 데이터에 따라 "고유 한"HTML 페이지를 만들고 싶습니다.

예 : 플레이어에 게임이 있는지 확인하는 createGame.php 페이지가 있습니다.

그가 그렇다면 표를 채우고 표시하고 싶습니다.

내 PHP :

<?php 
    $gamedata = someObject // basicly the entire gamedata, playerIds, subObjects, a bunch of database data clumped together. 

    if ($gamedata ->playerHasJoined()){ 
     $table = // code here to create a unique table element 
    } 
    ?> 

    <body> 
    <div> 
     <?php echo $table ?> 
    </div> 
    </body> 

자, 기본적으로 내 질문은 : 어떻게 "최고"테이블 요소를 구축합니까?

$table = "<table>"; 
$table .= "<tr><th>Im the Header</th></tr>"; 
$table .= "do this 50 times more"; 

을 또는 내 $gamedata 변수에 따라 요소를 만들 수있는 더 좋은 방법이있다 : 어떻게해야합니까? 아니면 HTML 페이지를 만들기 위해 완전히 다른 방법을 사용해야합니까?

<table> 
    <tr> 
     <?php 
     $header = array_keys($_GET); 
     for ($x=0; $x<count($header); $x++) { 
     ?> 

     <th><?=$header[$x]?></th> 

     <?php 
     } 
     ?> 
    </tr> 
    </table> 
+0

'$ gamedata'에 무엇이 있는지 알려주는 것이 유용 할 수 있으므로 처리중인 데이터에 대한 아이디어가 있습니다 – RiggsFolly

+0

이러한 답변을 살펴보십시오. http://programmers.stackexchange.com/questions/159529/how- to-structure-template-system-using-plain-php –

+1

귀하의 질문은 오히려 광범위하고 아마도 의견을 기반으로합니다. 그러나, 나의 * "2 센트"*; 당신은 HTML 마크 업을 위해 includes를 사용할 수 있으며, 변수들은 그들이 나타나기로되어있는 곳에 삽입 될 수 있습니다. 그러나 당신의 * "이것을 50 번 더하십시오"*는 그것이 무엇을 가지고 있어야하는지에 대해 불분명하다. 아마도 'foreach'를 사용하여 DB 컬럼 (들) 데이터를 보유하고 있어야만한다. –

답변

1

는 지금 것 같다. 내가 대신 할 일은 응답의 내용과 상관없이 동일하게 유지되는 모든 상용구를 작성한 다음 페이지 전체에 내용을 표시하는 것입니다.

예 :

<body> 
    <?php 
     $array = ['One', 'Two', 'Three']; 
    ?> 
    <ul> 
     <?php 
      foreach($array as $item) { 
       echo "<li>" . $item . "</li>"; 
      } 
     ?> 
    </ul> 
</body> 

당신이 내가 자신을위한 인생을 더 쉽게 만드는 나뭇 가지 (http://twig.sensiolabs.org/)와 같은 템플릿 엔진을 사용하기를 권합니다 더 복잡한 일을하는 경우.

1

당신이 뭔가를 할 수 있습니다 감사합니다. 여기

그것이 나뭇 가지와 함께 수행하는 방법입니다 :

'/path/to/vendor/autoload.php'
require_once '/path/to/vendor/autoload.php'; 

$loader = new Twig_Loader_Filesystem('/path/to/templates'); 
$twig = new Twig_Environment($loader, array(
    'cache' => '/path/to/compilation_cache', 
)); 

$rows = fetch_an_array_from_database(); 

echo $twig->render('index.html', [ 'table_rows' => $rows ]); 

Composer에 의해 생성 된 파일입니다.

index.html

: 당신이 처음에 모든 HTML의 권리를 만들려하고 단지 전체 페이지를 인쇄처럼

<table> 
{% for row in table_rows %} 
<tr> 
    <td>Name</td><td>{{ row.name }}</td> 
    <td>Age</td><td>{{ row.age }}</td> 
    <!-- etc. --> 
</tr> 
{% endfor %} 
</table> 
1

아마, 가장 좋은 방법은 Smarty, 또는 Twig 같은 템플릿 엔진을 사용하는 것입니다처럼 당신이

관련 문제