php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.03.2005, 14:36  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard Lösung mittels preg_replace()

Hallo Leute,

ich benutze in meinem CMS folgenden BBCode-Konstruktion:

[bild=4]

Folgendes soll passieren: An Hand einer ID (hier "4") soll in einer DB nachgeschaut werden, wie der eigentliche Dateiname des Bildes ist. Die damit identifizierte Datei soll dann aus dem Verzeichnis "bilder" angezeigt werden. Soweit zur Theorie. Nun habe ich zumindest mir erst einmal einen preg_replace() zusammengebastelt. Allerdings weiss ich nicht, wie ich mit jedem "[bild=<id>]" den eigentlichen Dateinamen aus der DB abfrage.

Hat jemand von euch eine Idee?

$lvar = preg_replace("|\[img=(.*)\]|Uism","[img]bilder/$1[/img]", $content);
inu ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.03.2005, 14:53  
Erfahrener Benutzer
 
Registriert seit: 10.09.2004
Beiträge: 339
mkl0815
Standard

ich würde das mittels eines bild-scriptes machen

z.b. :

PHP-Code:
<?php
$lvar 
preg_replace("|\[img=(.*)\]|Uism","[img]showpic.php?id=$1[/img]"$content);
?>
das script "showpic.php" liest aus $_GET['id'] die bild-id, schaut in der datenbank nach dem namen und liefert das bild an den browser. dabei auf das senden des richtigen headers achten.
praktischerweise kannst du sogar ein default-bild anzeigen wenn das bild nicht existiert. damit stellt der browser nicht so ein komisches zebrochenes bild dar.

mario.
__________________
Problems with Windows : REBOOT
Problems with Linux : BE ROOT
mkl0815 ist offline  
Alt 16.03.2005, 14:57  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
/e modifier makes preg_replace() treat the replacement parameter as PHP code after the appropriate references substitution is done. Tip: make sure that replacement constitutes a valid PHP code string, otherwise PHP will complain about a parse error at the line containing
also am besten noch den modifier e mit rein und als replace ne funktion angeben der du $1 übergibst und diese funktion liefert dann mittels return das html zurück.

mfg
robo47
robo47 ist offline  
Alt 16.03.2005, 14:57  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard

Aja. Sieht erst einmal gut aus. Funktioniert dann das Bilder-Cachen im Browser noch sauber?
inu ist offline  
Alt 16.03.2005, 14:58  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard

Hallo robo47,

wie würde das denn dann aussehen?
inu ist offline  
Alt 16.03.2005, 14:59  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

na ich denke das solltest du dann schon selbst hinbekommen, steht doch alles was relevant ist da? was erwartest du denn jetzt noch?
robo47 ist offline  
Alt 16.03.2005, 15:02  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard

ich habe leider nicht allzu viel ahnung von regulären ausdrücken und habe auch bei preg_replace() ziemlich viel zeit investiert, bis ich was brauchbares gefunden habe ...
inu ist offline  
Alt 16.03.2005, 15:05  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

der reguläre ausdruck kann doch so bleiben, lediglich der modfier e muss noch dazuz, damit eben das was im replace stest als php behalndet wird, also da rein dann sowas:

'meinefunktion($1)'

und diese funktion musst du halt selbstschreiben, die macht dann halt das was du wolltest mit dem bild aussucehn und gibt mittels return am ende den kompletten string inklusive <img und alle was du willst zurück.

mfg
robo47
robo47 ist offline  
Alt 16.03.2005, 15:08  
Erfahrener Benutzer
 
Registriert seit: 10.09.2004
Beiträge: 339
mkl0815
Standard

@robo47 wow, wieder was gelernt. das bau ich bei mir auch gleich mal ein

mario.
__________________
Problems with Windows : REBOOT
Problems with Linux : BE ROOT
mkl0815 ist offline  
Alt 16.03.2005, 15:11  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard

mmh,

ich komme mit dem "/e" nicht zurecht. an welche stelle müsste ich das einfügen?
inu ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mysql-backup mittels PHP auf webspace ohne shell Datenbanken 41 07.04.2010 15:29
Sortieren eines Arrays mittels Funktion ? madSoul PHP Tipps 2007 16 22.02.2007 11:49
Übergabe von eingegebenem String mittels Formular und POST?! vampsoftchef PHP Tipps 2006 7 18.10.2006 20:06
entfernung mittels plz berechnen kid01 PHP-Fortgeschrittene 10 13.10.2006 17:53
FTP Accounts mittels PHP Erstellen lassen PHP-Fortgeschrittene 8 12.10.2005 13:07
php: site-refresh nach submit mittels header PHP Tipps 2005-2 9 23.09.2005 15:22
mysql mittels php abfragen- array problem PHP Tipps 2005-2 6 20.07.2005 15:21
Navigation mittels PHP anpassen PHP Tipps 2005 8 27.04.2005 14:35
[PHP5] Mittels COM Support lokale DLL's ansprechen ??? HStev PHP-Fortgeschrittene 1 25.04.2005 12:52
[Erledigt] Dateiupload mittels POST PHP-Fortgeschrittene 5 04.02.2005 07:07
[Erledigt] Neuen Benutzer mittels PHP in MYSQL Anlegen PHP-Fortgeschrittene 1 28.10.2004 17:22
variablen übergabe mittels link funktioniert nicht Crypi PHP Tipps 2004 11 24.09.2004 09:57
[Erledigt] Baumstrukturjavascript mittels PHP generieren HTML, Usability und Barrierefreiheit 4 27.08.2004 11:56
sendmail mittels popen ausführen??? PHP Tipps 2004 0 09.08.2004 19:54
Mittels PReg Backreferences Teile eines Strings in ein Array PHP-Fortgeschrittene 2 01.08.2004 00:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
preg_replace rechnen, preg_replace php nach id, preg_replace(\'/\\/[^\\/]*$/\', \'/library/\',, beste lösung eregi_replace() php

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.