cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
Home
Impressum
Sitemap
AGB
Kontakt
Hilfe

Über Uns
Was ist Cybton?
Mitarbeiter
Technik
Werbung
Jobs


Statistik
Mitglieder gesamt: 68162
Mitglieder online: 6
Gäste online: 2
mehr...

Anzeige
Home » Suche

Suche

(100 Ergebnisse)Forum
        php quellcode in php array
+

Das Problem ist nicht preg_replace_callback, denn das escaped von sich aus gar nichts, das Problem liegt daran, dass du mit htmlentities escapesd und dann diesen escapeten String der Funktion highlight_string übergibst welche nun mal von sich aus wieder escaped!
Genau dieser Teil ist schuld:

Zitat:
create_function("\$suchergebniss", "return highlight_string(\"<?php \".\$suchergebniss[1].\" ?>\", TRUE);")
Um das zu korrigieren musst du highlight_string den nicht escapeten String übergeben, das kannst du machen in dem du einfach die Variabel $suchergebniss in dieser zur Laufzeit erzeugten Funktion per html_entity_decode() zurückumwandelst.

Jedoch würde sich dann der Lesbarkeit halber eine externe Funktion einer zur Laufzeit generierten Funktion eher anbieten besonders im nächsten Punkt.

Bei dem Ergebnis dass du von highlight_string zurückbekommst würde ich noch das <?php und ?> wegmachen sonst steht später mehr drin als der User eigentlich eingegeben hat, kannst du entweder mit regulären Ausdrücken oder in dem du schaust was da am Ende rauskommst und die ersten x Zeichen löscht (denn das sollte sich ja nicht ändern) und die letzten y Zeichen eben.

Du könntest natürlich auch das htmlentities nur auf das anwenden was später nicht der Funktion highlight_string vorgesetzt wird. Das könntest du mit regulären Ausdrücken erreichen (gerade wieder mit preg_replace_callback) aber da habe ich gerade keine Lust einen entsprechenden Ausdruck oder Code zu erstellen.

Ich finde die Lösung mit highlight_string sowieso eher suboptimal du könntest ggf. deinen eigenen Syntax-Highlighter bastellen das ist zwar etwas mehr Aufwand bringt dir aber einige Vorteile: kein zusätzliches einfügen von <?php und ?> nötig, ggf. kein entfernen dieser oder dem eingefügt lassen von Dingen die der User gar nicht eingegeben hat, Nutzung von Klassen und CSS (leichte Anpassbarkeit des Aussehens per CSS), leichte Erweiterbarkeit auf andere Sprachen (kann die Funktion überhaupt HTML, CSS oder andere highlighten?), keine Probleme mit dem escapen, genau das richtige um reguläre Ausdrücke zu erlernen (was du ja gerade vor hast), ...

Wenn du das nicht selber machen kannst oder willst, kannst du auch schauen ob es sowas ggf. zur freien Verwendung bereits gibt und das nutze. Selbst in den Kommentaren auf dieser Seite http://de2.php.net/manual/de/function.highlight-string.php gibt es einiges, ob da was dabei ist was man gebrauchen kann weis ich jedoch nicht.

        preg_replace_callback() escaped automatisch?
        Handy zeigt PHP-code an...hä?
        Kleine Wiki Software gesucht
        Neues Desgin meiner Seite (nach nicht mal 2 Monaten) - Feedback bitte
+

[h1]mod_rewrite[/h1]
Der für kleinere Projekte eher gebräuchliche Weg ist mod_rewrite. Das ist ein Apache-Modul, welches es erlaubt, bestimmte abgefragte URLs an andere URLs weiterzuleiten (Apache mod_rewrite). Für lighttpd gibt es ebenfalls solch ein Modul (Lighttpd mod_rewrite). Diese Umleitung geht zum einen extern (der User bemerkt die Umleitung) und auch intern (der User bemerkt die Umleitung nicht).
Was du hier möchtest, wäre die interne Lösung.

Bei Apache werden die Daten für mod_rewrite üblicherweise in eine .htaccess-Datei geschrieben. Bei lighttpd stehen sie meines Wissens in einer zentralen Konfigurationsdatei.

Rewrite-Rules für Apache sehen allgemein folgendermaßen aus:
[code=pseudo]RewriteRule nutzer-url echte-url[/code]

Für dein gewünschtes Beispiel sähe die .htaccess im Apache folgendermaßen aus:
[code=pseudo]RewriteEngine On
RewriteRule guestbook,([a-z]+),([0-9]+),[a-zA-Z]*\.html index.php?action=guestbook&mode=$1&guestbook_id=$2
RewriteRule ([a-z]+)\.html index.php?action=$1[/code]

Die zweite RewriteRule ist eine allgemeine RewriteRule, die du sicher möchtest, um andere Anfragen im selben Format auf die entsprechenden Aktionen umzuleiten. Allerdings tragen diese natürlich nicht alle die Parameter mode und guestbook_id mit sich. Daher haben wir darüber oben eine spezielle RewriteRule eingefügt, die nur auf guestbook zutrifft.

Ich habe absichtlich nicht [NC] gesetzt, um zumindest außerhalb des Thread-Titels eine Einheit für lowercase-Zeichen zu wahren. Ich weiß nicht, ob Google case-insensitive arbeitet. Falls dies der Fall sein sollte, dann könnte das Setzen des [NC]-Flags dazu führen, dass du ein [lexikon]Duplicate-Content[/lexikon] Problem hast.

Falls du trotzdem case-insensitivity wünschst:
[code=pseudo]RewriteEngine On
RewriteRule guestbook,([a-z]+),([0-9]+),[a-z]*\.html index.php?action=guestbook&mode=$1&guestbook_id=$2 [NC]
RewriteRule ([a-z]+)\.html index.php?action=$1 [NC][/code]

Damit kannst du auch deine interne PHP-Struktur vollkommen gleich lassen. Du musst nur alle Links anpassen, damit sie auf die neuen URLs zeigen.


[h1]Verarbeitung mit PHP[/h1]
Für größere Projekte mit MVC-Pattern wird meist eine Verarbeitung direkt in PHP gewählt. Dabei wird die REQUEST_URI auf bestimmte Bestandteile analysiert, welche dann wiederum zum Aufruf der richtigen Komponenten führen. Das dürfte allerdings für dich zu weit führen.

        anstatt "index.php?action=1" -> "index,action,1.html"
        Quiz in Java
(16 Ergebnisse)News
     Kostenloses Speicher-Upgrade für Xbox 360Spiele
     Öffentliche Beta von Opera Mobile 9.5Hard- & Software
     Neue MOApp-SeiteHard- & Software
     TrueCrypt 4.3 unterstützt VistaHard- & Software
     ZenZui: Neues User-Interface für das mobile Internet Handy
     Firefox: Bis zu 30 Prozent Marktanteil in EuropaHard- & Software
     User-generierter Spiele-Content: Zu 90 Prozent Mist?Internet
(3 Ergebnisse)User
Funatiker
cybered
wundertuete
Es wurde in den Kategorien Hilfe, Tutorial, Homepages, Basar und Buecher nichts gefunden.
nach obennach oben

Copyright © 2009 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - Your-Book.net - Dein kostenloses Gästebuch
ANEXIA - PHP Entwicklung - Dockers - s.Oliver Schuhe - Think Schuhe - der eigene Weg - Dorfen - Paul Green Schuhe - Bequeme Geox - Web-Entwicklung - Schueler.CC @ nexem