kostenloser Webspace werbefrei: lima-city


Text nach Zeichen untersuchen:

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sachiel

    sachiel hat kostenlosen Webspace.

    Wie untersuche ich eine Variabele nach einem bestimmtem Zeichen?
    Brauche das f?r ein G?stebuch, damit kein Html rein geschreiben werden kann.Deshalb will ich die Eintr?ge nach "<" durch suchen.
    Danke
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. das kannst du mit preg_match(), stristr, usw. machen. F?r ein G?stebuch w?rde ich dir aber empfehlen die tag/eingabe">eingabe mit htmlentities(string) zu escapen. Damit werden alle Sonderzeichen durch ihren HTML-Code ersetzt.

    echo htmlentities($gbausgabe);
  4. m**************n

    hmmmmmmm? Strg+F Taste klicken und das Zeien < eingeben - eventuell noch mit bef?rchtetem html tag - also <a oder <dif

    Sorry, da war wohl was anderes gemeint...

    Beitrag ge?ndert am 16.01.2006 18:19 von multimediadesign
  5. multimediadesign schrieb:
    hmmmmmmm? Strg+F Taste klicken und das Zeien < eingeben - eventuell noch mit bef?rchtetem html tag - also <a oder <dif

    Er will eine Variable untersuchen. Das wird wohl kaum mit Str+F gehen, weil eine Variable in diesem Falle ein interner Speicher inerhelb eines Scriptes (in diesem Fall PHP-Scriptes [siehe Forumname]) ist, der zur Laufzeit benutzt wird um Daten abzulegen.

    /EDIT/ Achso, du hast's schon selber gecheckt. Naja, is' auch egal.

    Beitrag ge?ndert am 16.01.2006 20:37 von phattek
  6. theuntouchables

    theuntouchables hat kostenlosen Webspace.

    machs mit htmlentities.
    das is besser, weil dann k?nnen die user auch <> schreiben um es z.b. als pfeil zu benutzen. au?erdem werden sonderzeichen die sonst probleme machen einfach umgewandelt...
  7. Hi,

    ich w?rde auch htmlentities verwenden.
    Falls man nur einzelne Zeichen ersetzten will (es k?nnte sein, dass man nur < und > ersetzten will, da die anderen zeichen o bleiben sollen), dann w?rde ich str_replace verwenden, auf keinen fall preg_replace (preg_replace braucht f?r diesen Vorgang viel l?nger).

    mfg,
    hr
  8. Meine dehtml()-Funktion reicht daf?r vollkommen aus. Sie deaktiviert alle f?r HTML relevanten Zeichen. Im Gegensatz zu htmlentities() gibts keine wunderlichen Effekte bei Eingabe von Zeichen mit "&#38;" -- so wie es hier im Board mal war (bis gestern?).

    function foxy_dehtml(
      $my_html_src=EMPTY_STRING
    ) {
      if( $my_html_src == EMPTY_STRING) return ($my_html_src);
      return( preg_replace( array('/&/', '/\</', '/\>/'),array('&#38;', '&#60;', '&#62;'), $my_html_src ) );
    }



    P.S.:
    Ich benutze preg_replace() in dieser Funktion, weil ...
    a) ... ich bequem bin und die PCRE-Funktionen von PHP gerne benutze, und ...
    b) ... weil preg_replace() nicht wirklich langsamer als str_replace() ist -- daf?r aber flexibler einsetzbar. Das PHP-Manual k?nnte in dieser Hinsicht mal eine ?berarbeitung gebrauchen. Die wirklich langsamen Funktionen sind die mit "ereg_" am Anfang. Die brauchen ca. 3 Mal so lange, wie die "preg_"-Funktionen. Dieses Missverst?ndnis h?lt sich schon seit Jahren hartn?ckig.

    *nachtr?glich_einf?g*

    Gruselig! :eek: Einen Tag nicht hier, und schon hat der lord einen bem?ngelten Bug behoben. Jetzt d?rften alle meine Qu?lcodes unn?tige "&#38;#38;" aufweisen. Ich mach sie aber nicht wieder weg. :wink:

    Beitrag ge?ndert am 18.01.2006 12:32 von alopex
  9. theuntouchables

    theuntouchables hat kostenlosen Webspace.

    Mag sein das sie mitlerweile gleich schnell sind aloplex, aber preg_replace is inssofern schlechter als dass es die pregex engine anwirft und das ressurcen saugt...

    Also immer sch?n str_replace ben?tzen wenn man lima nicht unn?tig langsam machen will...
  10. b*********e

    Bei PHP gibt es ne tolle Funktion:

    string striptags( string tagged_string, [allowed] )

    Diese Funktion l?scht alle Tags aus dem String. Du kannst aber auch angeben welche erlaubt sein sollen.

  11. Mag sein das sie mitlerweile gleich schnell sind aloplex, aber preg_replace is inssofern schlechter als dass es die pregex engine anwirft und das ressurcen saugt...

    Also immer sch?n str_replace ben?tzen wenn man lima nicht unn?tig langsam machen will...


    Die "PCRE-Engine" geh?rt zum Kern von PHP4 und PHP5, und wird damit immer mitgeladen oder "angeworfen". Das hei?t, wer sie nicht benutzt, w?rde einmal geladene Resourcen verschwenden ... :wink:

    Die Geschwindigkeit h?ngt davon ab, wie schnell ein RegEx passt. Nur wenn ein RegEx sehr kompliziert ist, und lange nicht "matched", kann sich die Ausf?hrungszeit erh?hen. Aber im Allgemeinen ist der Ausf?hrungsunterschied ?u?erst gering. Ich denke eher, dass die meisten PCRE nicht verwenden, weil sie sie nicht verstehen. Sie k?nnen aber einen Quellcode erheblich verk?rzen (das spart Ladezeit! :wink:). Und sie sind gerade f?r PHP4 in einigen F?llen unersetzbar. Zum Beispiel gibt es da kein str_ireplace(). Das l?sst sich aber mit PCRE leicht nachbilden und ist so 3-Mal schneller als ein selbst gestrickter Ersatz mit str_replace().

    Die gesamte PCRE-Engine ist ?brigens ca. 75 KBytes gro?. Das d?rfte bei einer Dateigr??e des PHP4-Interpreters von ca. 1.5 MBytes nicht viel Resourcen saugen. Das Apache-Modul mod_rewrite beutzt ?brigens die gleiche "Engine" f?r sein URL-Rewriting. Dort ist noch niemand auf die Idee gekommen, das Modul als langsam oder resourcen-fressend zu bezeichnen -- man spricht dagegen eher von klein, schnell und sparsam ...

    http://www.pcre.org/
    http://www.pcre.org/pcre.txt
  12. Autor dieses Themas

    sachiel

    sachiel hat kostenlosen Webspace.

    weil es enfernt mit dem thema zu tun hat bleibe ic jetzt mal in diesem Thread:

    gibt es eine funktion die einen string auf alle nicht alphapetischen Zeichen untersucht, oder muss ich da mit preg_ mir selber eine FUnktionbauen?
    Ich frage, weil ich nicknams testen will auf Sonderzeichen.. Danke
  13. Es gibt irgendeine PHP-Funktion, die nach dem Vorhandensein von bestimmten Zeichen sucht. Aber die f?llt mir erstens nicht ein und zweitens macht sie genau das Gegenteil von dem, was bei solchen ?berpr?fungen gemacht werden sollte. Als benutzen wir die PCRE-Engine:

    Es h?ngt davon ab, was du unter "alphabetischen Zeichen" verstehst.

    1. lateinische Buchstaben von a--z:

    if(preg_match('/\A[a-z]+\Z/', $nickname);

    2. Das Gleiche, aber auch Gro?buchstaben erlaubt:

    if(preg_match('/\A[a-z]+\Z/i', $nickname);

    3. Alle Buchstaben, die das benutzte PHP unterst?tzt oder -- wenn aktiviert --, die l?nderspezifischen Buchstaben (also im deutschsprachigen Raum a--z, ?, ?, ? und ?.

    if(preg_match('/\A[[:alpha:]]+\Z/', $nickname);

    Such dir was aus. :wink:

  14. du kannst auch strip_tags() benutzen, das entfernt alle html- und php-befehle aus dem string...

    also:

    strip_tags($string);
  15. 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!