kostenloser Webspace werbefrei: lima-city


aus nem string was bestimmtes extrahieren

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g****e

    ich weiß der titel ist blöd, ich hab ka wie man das sonst nennen soll....
    ich bin tot ideenlos und brauch hilfe. MEISTER, ERHÖRET MICH! :-D

    problem ist folgendes: ich möchte gern nen template prasen, und das soll listen beinhalten. nun will ich nich dumme sture listen machen mit immer append, sondern sie sollein ein bissel variabel sein.

    gegenebn ist folgende listenstruktur:

    $list['LISTENNAME'] = array (
        array ('test1', 'test2', 'test3'),
        array ('test4', 'test5', 'test6')
    );


    das erste array $list ist eine klasseninterne liste aller listen, damit ich die beisammenhabe, ihr argument für den arrayparameter besteht aus einem string, dem listenname. nun folgt halt ein 2 dimensionales array hinten ran, was nummerisch ist!!!! und eine liste mit den strings enthält die ersetzt werden sollen. ich geh mal weiter vor wies weitergehen soll:
    jetzt soll man im template folgendes reinschreiben:

    <table>
    {{LISTNAME|<tr><td>%1</td><td>%2</td><td>%3</td></tr>}}
    </table>


    und raus kommt halt:

    <table>
    <tr><td>test1</td><td>test2</td><td>test3</td></tr>
    <tr><td>test4</td><td>test5</td><td>test6</td></tr>
    </table>


    ich weiß das ist eine "große aufgabe" aber ich bin ratlos 0.0 ich hab nichtmal ne idee oder so, wie man das machen kann... aber ich brauch das halt.
    könnt ihr mir da helfen? bitte

    danke schonmal im vorraus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi. Ich hab dir zum Spass das ganze Skript geschrieben :D
    Hoffe das ist was du suchst :)

    <?php
    
    $list['LISTNAME'] = array (
        array ('test1', 'test2', 'test3'),
        array ('test4', 'test5', 'test6')
    );
    
    $format = '<table>
    {{LISTNAME|<tr><td>%1</td><td>%2</td><td>%3</td></tr>}}
    </table>';
    
    $farray = explode("\n", $format);
    
    $startread = 0;
    for($i = 0; $i < strlen($farray[1]); $i++){
      if($farray[1][$i] != "{" && $startread == 0){
        $startread = $i;
      }
      if($farray[1][$i] == "|"){
        break;
      }
    }
    
    $list_name = substr ($farray[1], $startread , $i-$startread);
    $list_syntax = substr ($farray[1], $i+1, strlen($farray[1])-$startread-$i-2);
    
    $result = $farray[0];
    
    foreach ($list[$list_name] as &$sublist) {
      $j = 1;
      $bodytag = $list_syntax;
      foreach ($sublist as $content) {
        $bodytag = str_replace("%".$j, $content, $bodytag);
        $j++;
      }
      $result.= "\n".$bodytag;
    }
    $result .= "\n".$farray[2];
    
    echo $result;
    ?>
  4. Wenn ich dich richtig verstanden haben sollen test1-3 die Überschrift und test-4-6 der Inhalt sein.

    Mach es doch einfach über eine foreach Schleife.
    <table>
        <tr><?php foreach ($list['LISTNAME'][0] as $name) printf('<th>%s</th>', $name); ?></tr>
    
        <tr><?php foreach ($list['LISTNAME'][1] as $value) printf('<td>%s</td>', $value); ?></tr>
    </table>

    Du kannst auch einen Placeholder einfügen und später diesen durch die Ausgabe ersetzten
    <table>
        <tr>{NAMES}</tr>
    
        <tr>{VALUES}</tr>
    </table>
  5. Jetzt musst du nicht meine schöne Arbeit schlecht machen :P
    So wie ich das gelesen habe will er seine eigene "Syntax" der Tabelle haben. So muss auch jemand der nicht mit dem PHP-Programmieren vertraut ist keine Codes abändern.
  6. Autor dieses Themas

    g****e

    klingt auf jedenfall interessant

    gedacht ist das folgender maßen:
    wir haben ein template das besteht aus HTML code:
    <h3>test</h3>
    <p> {{CONTENT}}</p>
    <b> Hier eine statistik dazu</b>
    der name: {{STATNAME}} <br/>
    <table>
    {{STATISTIK|
    <tr><td>%1</td><td>%2</td></tr>}}
    </table>

    usw. das ist mal son beispiel. und die liste soll halt dynamisch generiert werden aus dem template oben. anders wäre es lästig, und so ein listtemplate wäre hilfreich.
    das meine ich genau ;-)
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!