string replace

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • string replace

    hallo community!

    ich versuche gerade eine seite für eher "unbedarfte" admins zu erstellen - das heißt ich versuche die relevanten inhalte getrennt vom rest zu speichern. die formatierung der inhalte soll auch über einfach anzuwendende, selbsterklärende tags geschehen - und dabei stoße ich nun auf ein problem.

    ich schildere das mal an konkreten beispielen. die dateien, die editiert werden, sehen etwa so aus:

    Code:
    <titel>...beispieltitel #1...</titel>
    <news>...newstext, lore ipsum...</news>
    <datum>01.01.2007</datum>
    
    <titel>...beispieltitel #2...</titel>
    <news>...newstext, blah blubb...</news>
    <datum>02.02.2007</datum>
    diesen aufbau kann ich den entsprechenden personen sehr viel einfacher vermitteln als eine korrekte html-syntax, über sinn und zweck will ich dabei nicht streiten. ich habe es bereits geschafft die verwendeten tags in etwas sinnvolleres umzuwandeln, die verarbeitung sieht so aus:

    PHP-Code:
    $news_db file_get_contents('news.db');

    preg_match_all("=<titel>(.*)</titel>=siU"$news_db$titel);
    preg_match_all("=<news>(.*)</news>=siU"$news_db$news);
    preg_match_all("=<datum>(.*)</datum>=siU"$news_db$datum);

    $titel_count =count($titel[1]);
    $news_listing 0;

    while (
    $news_listing $titel_count){

      echo 
    "<span class=\"titel\">\n" $titel[1][$news_listing] . "\n</span>\n";
      echo 
    "<span class=\"news\">\n" $news[1][$news_listing] . "\n</span>\n";
      echo 
    "<span class=\"datum\">\n" $datum[1][$news_listing] . "\n</span>\n";

      
    $news_listing++ ;


    .. und nun zum komplizierten teil: ich möchte eine derartige umwandlung auch für links verwenden. das wäre einfach zu bewerkstelligen, wenn links nur einmal pro abschnitt vorkommen würden - aber das ist nicht der fall.

    mein ziel wäre es den usern die folgende markierung zu ermöglichen:

    Code:
    ... titel, newstext, was-auch-immer...
    
    <url>[url]http://www.google.de[/url]</url> <web>google</web>
    
    ... titel, newstext, was-auch-immer...
    das verarbeitende php-script soll die beiden gegebenen strings zu etwas sinnvollem zusammenbauen. wie ich das bewerkstellige weiß ich nicht, aber das schema sollte sein:

    $url: zeichenfolge zwischen <url> und </url>
    $web: zeichenfolge zwischen <web> und </web>

    ... damit die links dann brauchbar erstellt werden können:


    PHP-Code:
    $link "<a href=\"" $url "\" target=\"_blank\">" $web "</a>"
    wie ich das erwähnte schema umsetzen köntne ist mir schleierhaft - ich hatte mehr oder minder zufällig eine lösung gefunden die es mir erlaubt hat die umgewandelten links mit einer while-schleife auszugeben, nicht aber sie an den entsprechenden positionen der quelldatei zu setzen bzw. die userfreundlichen tags damit zu ersetzen.

    ich strebe also eine methode an bei der beliebig viele links links in beliebig vielen feldern ("titel", "news" und "datum" sind nur beispiele, es werden wohl noch weitere folgen) an beliebigen positionen mit der vereinfachten darstellung gespeichert werden, dann aber entsprechend korrekt umgewandelt und ausgegeben werden.

    ich hoffe meine erklärung ist halbwegs verständlich, und natürlich darauf hier eine lösung für mein vorhaben zu finden.

    danke für die geduld und liebe grüße!


    ps: ich bin relativ neu im php-land, komplexe funktionen sind mir noch fremd. klassen und function () ebenfalls, so leid es mir tut. nicht zuletzt deswegen wäre mir eine nachvollziehbare, schlichte methode sehr willkommen, doch ich lasse mich auch gerne eines besseren belehren.

  • #2
    bevor man das rad neuerfindet und sich in das stringgemetzel vertieft:

    produziere vollständig validen xml code (wenn er das nicht schon ist), den kann man mit dom sehr einfach und flexibel auseinander nehmen (in html tags umwandeln, etc.). damit kannst du den "unbedarften admins" xml-bearbeitungswerkzeuge in die hand drücken (es gibt ja viele), die die fehleranzahl stark reduzieren.

    oder

    schau dir bbcode an, die klasse müsste flexibel genug sein, solche ersetzungen vorzunehmen

    oder

    schau dir wikisyntax an - sie ist oft viel leserlicher und einfacher für endnutzer, als xml-tags.

    p.s. <url> und <web> sind so keine gute idee. besser: attribut. aber dann merkst du, dass du html neu erfindest.

    Kommentar


    • #3
      hallo penizillin!

      ich verstehe was du meinst, würde mein vorhaben aber doch lieber auf meine art lösen. vielleicht hätte ich den verwendungszweck genauer beschreiben sollen - denn für mein vorhaben brauche ich weder zusätzliche klassen noch eine valide xml-struktur.

      die webseite wird nur spärlich aktualisiert, von menschen die mit web-techniken nichts (!) am hut haben. allein die erwähnung von "xml" würde reichen um jegliches interesse völlig verfliegen zu lassen.

      ich habe mich bereiterklärt die kleine webpräsenz zu hosten und habe die vergangenen jahre selbst die paar dürftigen änderungen vorgenommen, ganz ohne flatfiles und php - "von hand" quasi.

      nun möchte ich jedoch den besitzern der seite ermöglichen selbst einfluss auf die inhalte zu nehmen (und einige anrufe wegen belangloser kleinigkeiten vermeiden):
      es wird eine möglichkeit geben sich einzuloggen, danach wird im textfenster die entsprechende datei ausgegeben, sie kann dort verändert und gespeichert werden - fertig. das war schon alles, natürlich kommen noch andere funktionen dazu, die hierfür aber nicht von bedeutung sind.

      um die ausgabe im textfenster so übersichtlich und verständlich wie möglich zu halten möchte ich besagte tags verwenden, die umwandlung und einbindung der eingegebenen daten kann ich dann fern vom user-zugriff handhaben.


      nachteile:
      - kein "norm"-verfahren
      - ungeeignet für umfangreichere inhalte

      vorteile:
      - sehr klare, individuell angepasste inhalts-struktur
      - sehr simples editieren der inhalte direkt auf der webseite


      vieleicht wird nun verständlicher warum ich auf meine tags und meine methode bestehe, vielleicht auch nicht - ich möchte jedoch bitten die diskussion um das für und wieder, was man warum sollte oder auch nicht, darauf beruhen zu lassen.

      wie gesagt, ich bin neu im php-land, habe eine für mich und alle beteiligten akzeptable lösund gefunden und weiß dass sie umsetzbar ist - ich weiß nur nicht wie. mit wachsendem wissensstand werde ich, sofern die projekte es erfordern, in zukunft vielleicht ja auch auf die genannten vorschläge zurückgreifen.


      nichts desto trotz vielen dank für deine anregungen,

      schönes wochenende noch!


      p.s:

      p.s. <url> und <web> sind so keine gute idee.
      kann man mich aufklären warum die verwendung dieser tags für rein interne zwecke, die so unter keinen umständen irgendwie in der ausgabe erscheinen, problematisch sein sollen?

      ich glaube zu wissen dass es dem verarbeitenden script relativ egal ist welche kennung ich für anfang und ende eines einzugrenzenden bereiches wähle, ob es nun <curry> oder <wurst> ist, aber vielleicht liege ich damit ja falsch.

      Kommentar


      • #4
        wenn ein kunde wenig ahnung hat, gib ihm einen wysiwyg editor (z.b. fck). für solche "miniprojekte" kann man ohne weiteres wordpress oder ähnliches nehmen.
        kann man mich aufklären warum die verwendung dieser tags für rein interne zwecke, die so unter keinen umständen irgendwie in der ausgabe erscheinen, problematisch sein sollen?
        deine kunden sind nicht die hellsten? dann musst du damit rechnen, fälle wie
        Code:
        <web>...</web> foo <url>...</url>
        oder
        Code:
        <web>...</web><web>...</web>
        aber auch
        Code:
        <web>...<url>...</url></web>
        richtig abzuarbeiten. was schätzst du denn, warum es in html "a href" gibt, und nicht etwa "web" und "url"? der konsistenz halber.

        überleg's dir.

        Kommentar


        • #5
          wenn ein kunde wenig ahnung hat, gib ihm einen wysiwyg editor (z.b. fck). für solche "miniprojekte" kann man ohne weiteres wordpress oder ähnliches nehmen.
          sicher, könnte man. oder auch ein kleines schlichtes cms. oder, oder, oder...

          doch jedes "ich bau mir ganz leicht eine webpage"-tool umfasst ein zig-faches der funktionen die benötigt werden, was weder zur vereinfachung noch zum leichten verständis beiträgt.

          ganz davon abgesehen ist es mir gänzlich zuwider dass die genannten möglichkeiten zum editieren diverser inhalte an aufwand und verwendeten ressourcen nicht im geringsten in einem akzeptablen verhältnis zum gewünschten ergebnis stehen - andernfalls könnte ich auch joomla oder typo3 verwenden und die arme verschränken.

          habe ich erwähnt dass die in frage kommenden benutzer teils auch nur über eine modem-verbindung verfügen? und wir reden hier nicht von isdn. die ausgegebenen seiten sollen nach möglichkeit auch damit akzeptabel schnell laden, was bei diversen umfangreicheren installationen nicht unbedingt der fall ist.


          deine kunden sind nicht die hellsten?
          das habe ich nicht gesagt - sie sind nur desinteressiert und nicht besonders angetan von computern. die webpräsenz stellt eine informationsplattform für ein lokales, wiederkehrendes event dar, die leute sind eher mit organisatorischen dingen beschäftigt als sich etwas um webtechniken zu scheren.

          was zählt ist nur DASS die inhalte entsprechend simpel gehandhabt werden, nicht WIE.

          die 'kunden' sind jedoch 'lernfähig' - wenn ich die vorgabe mache "dass muss so und so aussehen", dann werden meine worte berücksichtigt und das begreifen und richtige anwenden von 3 bis 10 völlig simplen "befehlen" ist durchaus im rahmen des möglichen - eine kurze erklärung der tags und der syntax wird selbstredend unter der textbox ausgegeben, für den fall dass nach monatelanger pause doch ein paar lücken entstehen.

          dann musst du damit rechnen, fälle wie [...] richtig abzuarbeiten.
          1: nein, siehe oben.

          2 (der unwarscheinlichste fall tritt immer ein): ein falscher aufbau der content-datei wird nur zu fehlermeldungen führen - ich überlege noch ob ich die routine "vorschau" -> "speichern" einbauen soll oder ob der benutzer die falsche ausgabe selbst erkennt und daraufhin die inhalte überprüfen wird, ich tippe jedoch auf die vorschau...


          ich verstehe jeden deiner einwände sehr gut, bin allerdings nach wie vor auf der suche nach einem script...


          nachtrag

          ich lese mich gerade in die bbcodes-klasse ein... mir scheint als müsste ich das bestehende konstrukt verwerfen und anders an die sache herangehen, auch wenn ich das eigentlich vermeiden wollte.

          nach wie vor wäre mir eine 08/15-lösung willkommen, danke für die anregungen & meinungen!


          nachtrag2

          ... manchmal bringt "drüber schlafen" mehr als jedes tutorial - ich glaube ich weiß wo ich falsch angesetzt habe, ich bitte darum die störung zu entschuldigen
          Zuletzt geändert von sph; 29.06.2007, 16:07.

          Kommentar

          Lädt...
          X