Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Text nach Strings durchsuchen und sortieren (https://www.delphipraxis.net/72751-%5Bphp%5D-text-nach-strings-durchsuchen-und-sortieren.html)

Wuaegner 6. Jul 2006 10:12


[PHP] Text nach Strings durchsuchen und sortieren
 
Hallo,

Mir fällt bis jetzt einfach keine gute Lösung für mein relativ simples Problem ein:
Ich habe einen HTML-Text in dem sich keywords befinden, die ersetzt werden sollen.
Den Text durch den sie ersetzt werden sollen, liefer eine Funktion ersetze($type, $nr){}.
Jenachdem welcher Typ mein Keywort ist, wird er durch einen anderen Text ersetzt. Zusätzlich enthält dieser Text die $nr, diese gibt an, das wievielte Keywort es im Text ist.

Zur Verdeutlichung ein Beispiel:

Code:
<html>
  .
  .
 ( Dieses Keywort soll nachher "ersetze()" aufrufen mit $type=editor, $nr=1)
  .
  .
 ( "        " ersetze("no_editor",2) )
  .
  .
     ( "        " ersetze("editor",3) )

</html>
Hoffe es ist klar geworden... weiß jemand einen Lösungsansatz?

pacman1986 6. Jul 2006 11:05

Re: [PHP] Text nach Strings durchsuchen und sortieren
 
nein richtig klar ist es mir nicht geworden aber wenn es um einfaches erstezen geht sollte diese funktion helfen

Delphi-Quellcode:
$ergebnisstext = str_replace($search, $replace, $zuersetzendertext);
wobei bei mir search und replace zwei arrays sind in denen der zu ersetzende text steht ein beispiel aus meinem smilie code waere:

Delphi-Quellcode:
$search = array(':D',
                ':P',
      ':)',
      ';)')
Delphi-Quellcode:
$replace = array('[img]smilies/biggrin.gif[/img]',
                 '[img]smilies/razz.gif[/img]',
       '[img]smilies/smile.gif[/img]',
       '[img]smilies/wink.gif[/img]')
tja statt smilie text wird jetzt das smilie bild angezeigt :D

Wuaegner 6. Jul 2006 11:09

Re: [PHP] Text nach Strings durchsuchen und sortieren
 
OK, dann werde ich versuchen es noch klarer zu beschreiben:

Das Problem an der Sache ist, der funktion ersetze() die richtige $nr mitzugeben, also die nr des Keywords.

Habe gerade eine Idee.. probier das mal schnell aus, wenns klappt post ich es noch.

r2c2 6. Jul 2006 11:18

Re: [PHP] Text nach Strings durchsuchen und sortieren
 
Hallo Wuaegner :hi:

ich hab dich, glaub ich, nicht 100%ig verstanden(insbesondere das mit den Nummern), aber das sollte sich mit RegExps machen lassen. Ungefähr so(ungetestet, unvollständig, nur Ansatz):

Code:
  preg_match('//Ui', $html_str, $matches);
  $item = $matches[1];
  preg_replace('//Ui', ersetze($item)));
Zur $nr ggf. das ganze in ne Schleife packen und mitzählen...

mfg

Christian

cruiser 6. Jul 2006 11:54

Re: [PHP] Text nach Strings durchsuchen und sortieren
 
Hier bietet sich die Callback-Variante eher an:

Code:
[b]function[/b] replace_textfeld ([color=#df0000]$match[/color]) {
  [b]global[/b] [color=#df0000]$tf_zaehler[/color];
  [color=#df0000]$tf_zaehler[/color] ++;
  [b]return[/b] ersetze($match[1], [color=#df0000]$tf_zaehler[/color]);
}

[color=#df0000]$html[/color] = [color=#009900]/* irgendwo den HTML-Content herholen */[/color];

[color=#df0000]$tf_zaehler[/color] = 0;

[b]preg_replace_callback[/b]([color=#1f00ff]"//Ui"[/color], [color=#1f00ff]"replace_textfeld"[/color], [color=#df0000]$html[/color]);
Wenn allerdings die Felder statisch und bekannt sind würde ich es persönlich vom Konzept aber anders angehn.

Wuaegner 6. Jul 2006 12:33

Re: [PHP] Text nach Strings durchsuchen und sortieren
 
Zitat:

Wenn allerdings die Felder statisch und bekannt sind würde ich es persönlich vom Konzept aber anders angehn
Die textfeldkeywords werden durch diese Html-tags ersetzt:
Code:
<? echo '<textarea class="'.$type.'" name="textfeld'.$nr.'" rows="'.$rows.'" cols="'.$cols.'">
wobei ich nun die keywords so aufbauen wollte:
das steht nachher in der html-seite, und wird von mir dann ausgelesen ( $type wäre hier dann "noeditor", textarea $rows wären 15 und $cols ebenfalls 15). Die $nr würde ich dann bei der Durchsuchung des Textes vergeben.

Jemand einen besseren Vorschlag?

cruiser 6. Jul 2006 13:33

Re: [PHP] Text nach Strings durchsuchen und sortieren
 
Kommt zunächst einmal drauf an in welchem Kontext die Aufgabe zu sehn ist. Wenn du z.B. genau vorher weisst wieviele Felder auf der Seite sind und was deren Inhalt wird kämst du mit einem Template-Parser und einem action-Handler für das Formular günstiger. Wenn du vorher nicht weisst, wieviele Felder es werden, woher weisst du dann, welche Dimension die haben werden? :gruebel:

Zu deinem bisherigen Vorgehn (incl. deiner Modifikation)
Die Syntax find ich lesbarer:

e: editor oder noeditor
c: für cols
r: für rows

Die entsprechende Reg-Expression für mein Callback wäre:
Code:
"//Ui"
Die entsprechenden Werte in der Callback-Funktion:
e -> $match[1]
c -> $match[2]
r -> $match[3]


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz