Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Regex Hilfe gesucht
Antwort
 
Themen-Optionen
Alt 04.11.2006, 21:16   Nach oben    #1
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard Regex Hilfe gesucht

Hallo,

da ich leider überhaupt nichts von Regex versteh, bzw einfach zu dumm bin, es zu kapieren, meine Frage:

Ich habe folgendenden String:

[img: hauptbahnhof.jpg|"beschreibung"]

Das soll nun umgewandelt werden nach
<img src="hauptbahnhof.jpg" title="beschreibung" />

Ich würde mir gerne Regex selber beibringen, leider fehlt mir im Moment die Zeit - daher belästige ich euch kurz mit dieser Aufgabe.

Ein Denkansatz wäre auch schon schön.

Danke euch
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.11.2006, 21:32   Nach oben    #2
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
Standard

PHP-Code:
$str preg_replace('/\[img: ([a-zA-Z\._]+)\|"([^"])"\]/''<img src="\\1" title="\\2" />'$text); 
Oder so...
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.11.2006, 21:41   Nach oben    #3
Erfahrener Benutzer
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Hier versuch mal den:
Code:
\[img:\s([a-zA-Z\.-_0-9]+)\|"([^"]*)"\]
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.11.2006, 23:05   Nach oben    #4
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Hi,

danke schon mal, aber vllt bin ich nun voll dumm, denn irgendwie ändert er rein gar nix:

PHP-Code:
$text $this->parsetext($post['text']); 
Methode:
PHP-Code:
    public function parsetext($text) {
        
//bilder parsen
        
$str preg_replace('/\[img:\s([a-zA-Z\.-_0-9]+)\|"([^"]*)"\]/''<img src="\\1" title="\\2" />'$text);
        echo 
$str;
        die();
    } 
Text, der durchsucht wird:
HTML-Code:
Hallo du 
[img: 1162668115Bild015.jpg|asdasd] das ist toll 
[img: 1162668115Bild032.jpg|wasrasd]
Und genau das gibt er auch aus.
Er ersetzt also nix.
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 03:18   Nach oben    #5
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
Standard

Code:
Hallo du 
[img: 1162668115Bild015.jpg|"asdasd"] das ist toll 
[img: 1162668115Bild032.jpg|"wasrasd"]
Du musst dich schon an deine eigenen Vorgaben halten.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 09:34   Nach oben    #6
Erfahrener Benutzer
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
Standard

Zitat:
Zitat von pago Beitrag anzeigen
Code:
Hallo du 
[img: 1162668115Bild015.jpg|"asdasd"] das ist toll 
[img: 1162668115Bild032.jpg|"wasrasd"]
Du musst dich schon an deine eigenen Vorgaben halten.
Einmal das und es fehlen meines Erachtens nach auch noch die Modifier s und U:

Code:
$str = preg_replace('/\[img:\s([a-zA-Z\.-_0-9]+)\|"([^"]*)"\]/sU', '<img src="\\1" title="\\2" />', $text);
Oder irre ich mich eventuell?
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 10:44   Nach oben    #7
Semantic Web Fanatic
 
Benutzerbild von Artemis
 
Registriert seit: 03.06.2006
Beiträge: 237
Standard

Code:
'<img src="\\1" title="\\2" />'
sollte auch so aussehen:
Code:
'<img src="$1" title="$2" />'
__________________
Applikations-Programmierung:
BlitzMax, BlitzPlus

Webentwicklung:
PHP, (X)HTML, CSS, JavaScript, MySQL


Artemis ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 12:18   Nach oben    #8
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
Standard

@MrNiceGuy: Ach jaaa... na ja, ich bevorzuge eigentlich *? und co., hab ich wohl in meinem Entwurf vergessen...

@Artemis: Warum? Beides müsste gehen, wenn ich mich nicht irre.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 12:27   Nach oben    #9
Semantic Web Fanatic
 
Benutzerbild von Artemis
 
Registriert seit: 03.06.2006
Beiträge: 237
Standard

Ich meine doch, \1 wäre für Rückbezüge innerhalb des Regex also so was
Code:
<(h[1-6])>(.*?)</\1>
, oder irre ich mich?
__________________
Applikations-Programmierung:
BlitzMax, BlitzPlus

Webentwicklung:
PHP, (X)HTML, CSS, JavaScript, MySQL



Geändert von Artemis (05.11.2006 um 12:33 Uhr).
Artemis ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 12:30   Nach oben    #10
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Argh..
war gestern schon spät

Danke euch!
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 13:32   Nach oben    #11
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
Standard

Soweit ich weiß funktioniert \1 in beiden. Jedenfalls habe ich es immer damit gemacht - seit Jahren.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 14:42   Nach oben    #12
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Hmm, sorry, muss euch doch noch mal stören.
Gibt immer noch nix richtiges aus:
So langsam zweifle ich, ob mir ein Hirn mitgegeben wurde - oder ob es angeschalten ist.

Zitat:
[img: 1162668115Bild015.jpg|"Beschreibung hier eintragen"]
[img:1162668115Bild015.jpg|"Beschreibung hier eintragen"]
[img: 1162668115Bild015.jpg|"Beschreibung"]
Bin ich einfach zu dumm oder wie oder was?

PHP-Code:
    public function parsetext($text) {
        
//bilder parsen
        #$text = preg_replace('/\[img:\s([a-zA-Z\.-_0-9]+)\|"([^"]*)"\]/', '<img src="\\1" title="\\2" />', $text);
        #$text = preg_replace('/\[img:\s([a-zA-Z\.-_0-9]+)\|"([^"]*)"\]/sU', '<img src="\\1" title="\\2" />', $text);
        
$text preg_replace('/\[img:\s([a-zA-Z\.-_0-9]+)\|"([^"]*)"\]/sU''<img src="$1" title="$2" />'$text);
        return 
$text;
    } 
PHP-Code:
$text $this->parsetext($post['text']);
die(
$text); 
Ausgabe ist exakt das, was oben steht, alle kommentierten Versionen sind getestet worden - mit dem gleichen Erfolg.
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 14:58   Nach oben    #13
Erfahrener Benutzer
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

PHP-Code:
<?php
$text 
'[img: 1162668115Bild015.jpg|"Beschreibung hier eintragen"]
[img:1162668115Bild015.jpg|"Beschreibung hier eintragen"]
[img: 1162668115Bild015.jpg|"Beschreibung"]'
;
$text preg_replace('/\[img:\s([a-zA-Z\.-_0-9]+)\|"([^"]*)"\]/sU''<img src="$1" title="$2" />'$text);
echo 
$text;
?>
Ergibt bei mir
Code:
<img src="1162668115Bild015.jpg" title="Beschreibung hier eintragen" />
[img:1162668115Bild015.jpg|"Beschreibung hier eintragen"] (<- leerzeichen)
<img src="1162668115Bild015.jpg" title="Beschreibung" />
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 15:04   Nach oben    #14
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Wenn ichs so teste, gehts auch.

Aaargh.. Der FCK-Editor wandelt " nach &quote; um.. Mal schaun, obs da ne Einstellung gibt, sonst muss ich die davor noch manuell umwandeln - bzw htmlspecialchars_decode()...
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 15:07   Nach oben    #15
Erfahrener Benutzer
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Warum lässt du die Dinger nich weg? Ghet doch auch ohne dann halt
Code:
/\[img:\s([a-zA-Z\.-_0-9]+)\|([^"]*)\]/sU
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.11.2006, 15:41   Nach oben    #16
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Jo, so gehts natürlich auch.
Find ich aber nicht so "schön"...

Allerdings hab ich noch mal folgendes Problem:

Zitat:
Hallo,
heute ist es so weit. Der Test findet statt
Ich brauch hiernur noch nen kleinen Dummytext, um
[img: 1162736779Bild020.jpg|"Halloa"|left] das bild anzuzeigen zu lassen.
asdasdas
dasd
asda
sdasd
asdasdsada
dasds
asd
Der Regex oben klappt (erweitert) einwandfrei, so sei gesagt, dass das Problem woanders liegt.

Ich möchte nur 1162736779Bild020.jpg aus dem Text heruasgefiltert haben.
Am besten alle in einem Array.

Es mag vllt etwas umständlich erscheinen, aber es läuft wie folgt:
Ein User lädt ein Bild beim Artikelschreiben rauf. Diese werden in einen temporären Ordner verschoben, der aus Speicherplatzgründen alle 2 Stunden per Cron geleert wird.

Das hat den Sinn, dass nur die Bilder behalten werden, die auch tatsächlich im Artikel stehen, denn falls der Artikel nicht geschrieben wird, bzw veröffentlicht, entsteht kein unnötiges Chaos mit Bildern auf dem Server. Der User darf nicht in den Verzeichnissen rumblättern, darum diese Lösung.

Die Bilder werden dann mit dem "speichern", bzw "veröffentlichen" des Artikels verschoben.
Hierzu brauch ich eben nur die Namen der Bilder - wenn möglich als Array.

Hoffe ich hab das verständlich rübergebracht

Mein Ansatz war schon mal simpel:

PHP-Code:
$bild_to_move preg_replace('/\[img:\s([a-zA-Z\.-_0-9]+)\|"([^"]*)"\|(left|right|center)\]/sU''$1'$text2); 
Allerdings ersetz er die Dinger dann ja nur.


Update:

Hat schon!
preg_match_all()..
__________________
Vive la France! Welcome to Sarkoworld...

Geändert von ljungi (05.11.2006 um 15:59 Uhr).
ljungi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Suche Hilfe für eine Portalseite bl-25 PHP-Programmierung 36 29.05.2007 15:57
Verschiedene Scripte/ Hilfe gesucht mepeisen Gesuche 0 28.03.2007 07:28
Regex Hilfe bitte heohni PHP-Programmierung 9 06.05.2006 10:54
Portal-System gesucht Ben Gesuche 5 22.01.2006 01:04
BG -hilfe und Team gesucht rexee Gesuche 2 10.12.2005 20:15


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:50 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44