php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.02.2009, 10:16  
Neuer Benutzer
 
Registriert seit: 28.03.2006
Beiträge: 5
Party-Pix
Standard preg_replace Link

Hallo,
ich habe schon bei google geschaut aber leider nicht das richtige gefunden.
Folgendes problem:

Ich habe einen String der so aussehen kann:

Artist - Titel (Mix) www.abc.de.mp3
oder
Artist - Titel www.abc.de.mp3
oder
Artist www.abc.de.mp3
oder der schwerste Fall, meiner Meinung nach
Artist_-_Titel_(Mix)_www[1].abc.de.mp3

Nun möchte ich die URL entfernen also es soll aus
Artist - Titel (Mix) www.abc.de.mp3 -> Artist - Titel (Mix).mp3 werden.
Artist - Titel www.abc.de.mp3 -> Artist - Titel.mp3
Artist www.abc.de.mp3 -> Artist.mp3
Artist - Titel (Mix).mp3 (die _ könnte ich vorher durch str_replace ersetzen lassen)

Nun meine Frage:

Wie könnte der reguläre Ausdruck für soetwas aussehen. Habe schon teile im Internet gefunden jedoch waren die nicht imemr passend.

Bsp war:
Code:
^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?$
wobei er meinte das am Ende noch ein ^ fehl.
wenn ich dieses anhänge, funktioniert es soweit ganz gut, bis auf das .mp3 auch weggeschnitten wird.

Kann mir jemand bei diesem Problem helfen. Wäre furchtbar nett.

Mit freundlichen Grüßen

Marcel
Party-Pix ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.02.2009, 12:33  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Was soll der Quatsch mit www.abc.de.mp3 ? Kapier ich nicht.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 09.02.2009, 14:07  
Neuer Benutzer
 
Registriert seit: 28.03.2006
Beiträge: 5
Party-Pix
Standard

Hallo
naja abc.de | Internet-Dienste könnte eine URL sein die in dem gesamten String vorkommen kann. genau wie test.de - Stiftung Warentest oder ähnliches.

Grüße

Marcel
Party-Pix ist offline  
Alt 09.02.2009, 14:15  
Erfahrener Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 160
PHP-Kenntnisse:
Fortgeschritten
McSodbrenner befindet sich auf einem aufstrebenden Ast
Standard

Hi,
probiers hiermit:

PHP-Code:
<?php
error_reporting
(E_ALL);

// Text bzw. String der durchsucht werden soll 
$string = <<<EOF
Artist - Titel (Mix) www.abc.de.mp3
oder
Artist - Titel www.abc.de.mp3
oder
Artist www.abc.de.mp3
oder der schwerste Fall, meiner Meinung nach
Artist_-_Titel_(Mix)_www[1].abc.de.mp3
EOF;

// das Suchmuster mit Delimiter und Modifer (falls vorhanden) 
$pattern '/[ _]?[a-z0-9\.\[\]]+\.mp3/';

// Ersatzstring 
$ersatz '.mp3';

// RegEx mit preg_replace() auswerten 
echo preg_replace($pattern$ersatz$string );

// ggf. auch: 
// echo preg_replace(, htmlentities(), ); 

?>
Geniales Tool:
regex online tester - regular expressions

Gruß,
Christoph
McSodbrenner ist offline  
Alt 09.02.2009, 14:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Das Fragezeichen würde ich weglassen. Und für die URL reicht imho auch ein [^\040_]*?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 09.02.2009, 14:43  
Erfahrener Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 160
PHP-Kenntnisse:
Fortgeschritten
McSodbrenner befindet sich auf einem aufstrebenden Ast
Standard

Klar stimmt, so gehts:
/[ _][^ _]+\.mp3/i

Allerdings nicht für die Beispiele, die später noch kamen. Da sehe ich keine Chance, wenn man nicht sichergehen kann, dass in allem vor der URL keine Punkte drin sind. Und das kann man wohl nicht, oder, Party-Pix?
McSodbrenner ist offline  
Alt 09.02.2009, 15:12  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Da sehe ich keine Chance, wenn man nicht sichergehen kann, dass in allem vor der URL keine Punkte drin sind.
Wieso, die Punkte im String haben doch nichts mit dem Ausdruck zu tun. Evtl. Unterstriche sind das Problem.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 09.02.2009, 15:24  
Erfahrener Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 160
PHP-Kenntnisse:
Fortgeschritten
McSodbrenner befindet sich auf einem aufstrebenden Ast
Standard

Wenn es vorn keine Punkte gibt, könnte man ja einfach alles suchen, was ab [a-z0-9] und einem folgenden Punkt kommt, also eine URL darstellt. Dann wären die Unterstriche relativ egal.
McSodbrenner ist offline  
Alt 09.02.2009, 15:29  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Wie jetzt? Ne URL kann doch aus x Punkten bestehen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 09.02.2009, 15:57  
Erfahrener Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 160
PHP-Kenntnisse:
Fortgeschritten
McSodbrenner befindet sich auf einem aufstrebenden Ast
Standard

Ja, macht doch nix. Hab hier mal ein Beispiel gemacht, das mit allen gezeigten URLs funktioniert. Aber halt nur, wenn am Anfang kein Punkt steht:
regex online tester - regular expressions
McSodbrenner 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
Klick auf Seitenobjekt (Link mit onClick Ereigniss) mit JScript simulieren Stephan_87 JavaScript, Ajax und mehr 1 22.12.2008 21:50
[Erledigt] Link Übergabe per $_GET['Variable'] vita PHP Tipps 2008 16 14.07.2008 15:19
Link als Formular? Toby PHP Tipps 2008 1 22.01.2008 00:51
[Erledigt] Link mit mail() verschicken Clan-Opa PHP Tipps 2008 1 05.09.2007 22:29
IE5 link futzt net, rechte Maus + link öffnen geht hackenbusch HTML, Usability und Barrierefreiheit 1 03.01.2007 00:48
CSS: Link Styles SvenLittkowski HTML, Usability und Barrierefreiheit 3 26.09.2006 17:13
Php script über link ausführen!?? Funky_ PHP Tipps 2006 2 20.06.2006 11:32
Link in Frame der auf Seite ohne Frames verweist HTML, Usability und Barrierefreiheit 1 25.02.2006 14:00
Daten aus MySQL-abfrage zum Link mit id zusammensetzen maccoder Datenbanken 2 13.09.2005 16:49
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
weiterleitung per link im gleichem frame PHP Tipps 2005 17 23.05.2005 11:34
Über Link einen Zeile aus Tabelle löschen Calli PHP Tipps 2004-2 24 03.12.2004 13:35
[Erledigt] über ein Link --&gt; Tabelleneintrag PHP Tipps 2004 9 03.11.2004 17:09
absoluter link PHP Tipps 2004 10 01.07.2004 23:00
PHP Link ??? PHP Tipps 2004 4 25.06.2004 17:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
preg_replace link, php preg_replace link, preg_replace, preg_replace url, php preg replace link, preg_replace link text, preg_replace html link, http://www.php.de/php-einsteiger/51614-preg_replace-link.html, str_replace php in links, link to url mit preg_replace, preg_replace(); url, preg_replace link php, php str_replace link, str_replace link entfernen, preg_replace links beispiele, str_replace link / php, php preg hyperlink, preg_replace url erkennen, preg_replace bis auf, php preg_replace url in link

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:14 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