mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 20.04.2024 02:19 Benutzername: Passwort: Auto-Login

Thema: Frage zu regulären Ausdrücken bzgl. gekürzter Domain-Ausgabe vom 13.04.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Frage zu regulären Ausdrücken bzgl. gekürzter Domain-Ausgabe
Seite: 1, 2  Weiter
Autor Nachricht
AndiN
Threadersteller

Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst So 13.04.2008 16:09
Titel

Frage zu regulären Ausdrücken bzgl. gekürzter Domain-Ausgabe

Antworten mit Zitat Zum Seitenanfang

Hallo Kollegen,
ich habe eine Funktion die mir aus einem Fließtext ($content) alle eingegebenen URLs und Email-Adressen in anklickbare Links umwandelt. Das ganze sieht so aus und funktioneirt auch prima soweit:

$suchmuster = array('#((?:http://|https://|ftp://)\S+)#','#[^/]((www.)\S+)#','/([a-zA-Z0-9\._-]+)@([a-zA-Z0-9\._-]+)\.([a-zA-Z0-9\._-]+)/');

$ersetzen = array('<a href="$0" target="_blank">$0</a>','<a href="http://$1" target="_blank">$0</a>','<a href="mailto:$0">$0</a>');

return nl2br(preg_replace($suchmuster,$ersetzen,$content));


Nun möchte ich erreichen, dass wenn ein User einen langen URL eingibt, dieser in der Anzeige nur bis zur Domain-Endung angezeigt wird. Die Verlinkung sollnatürlich bleiben.

Beispiel:

Eingabe: http://www.muster.de/html/sites/4343/hfhfhf/test.php

Ausgabe: <a href="http://www.muster.de" target="_blank">http://www.muster.de/html/sites/4343/hfhfhf/test.php</a>

Das soll bei folgenden Eingaben funktionieren:

www.irgendwas.de/hjhjk/jkjk/index.html
http://irgendwas.de/hjhjk/jkjk/index.html
http://www.irgendwas.de/hjhjk/jkjk/index.html

Ideen, Vorschläge, Lösungen? ... vielleicht... bitte?
  View user's profile Private Nachricht senden
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 13.04.2008 16:18
Titel

Re: Frage zu regulären Ausdrücken bzgl. gekürzter Domain-Aus

Antworten mit Zitat Zum Seitenanfang

AndiN hat geschrieben:

Beispiel:

Eingabe: http://www.muster.de/html/sites/4343/hfhfhf/test.php

Ausgabe: <a href="http://www.muster.de" target="_blank">http://www.muster.de/html/sites/4343/hfhfhf/test.php</a>


Du meinst andersrum oder? So ergibt das ja keinen Sinn *zwinker*

Zum Problem: Du kannst doch die Stringlänge bestimmen. Dann sagst ud einfach für die Variable $b = URL und $b1 = max. 30 Zeichen

-> <a href="$b">$b1</a>
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
AndiN
Threadersteller

Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst So 13.04.2008 17:11
Titel

Re: Frage zu regulären Ausdrücken bzgl. gekürzter Domain-Aus

Antworten mit Zitat Zum Seitenanfang

Ähm, ja. natürlich andersrum. Ooops

Ich habe schon was versucht nach dem Motto:

Er soll den String in der Varible $0 mit explode in ein Array $array_url zerlegen und wenn in dem Anfangsstring der Substring "http://" vorkommt soll er im a-Tag dann Wenn in der Variable $0 "http://" vorkommt dann soll er $array_url[2] nehmen und ansonsten $array_url[0].

Das kleine Problemchen dabei ist, dass $0 keine wirkliche Varible ist. Wäre es eine Varibale müsste das ganze ja eh so aussehen:

$ersetzen = array('<a href="'.$0.'" target="_blank">'.$0.'</a>','<a href="http://'.$1.'" target="_blank">'.$0.'</a>','<a href="mailto:'.$0.'">'.$0.'</a>');

Reguläre Ausdrücke sind mir leider ein Buch mit 7 Siegeln. Ich war froh als das was ich da oben habe endlich funktionierte.

Es gibt quasi jetzt 2 Lösungsansätze:

1) Die Abfrage nachdem was ich ersetzen muss in irgendeiner Form abzuändern
2) Herausfinden wie ich den String mit der URL kriege und denn dann mit explode usw. behandeln
3) einfach pauschal die ersten x Zeichen ausgeben

Weg 3 wäre der einfachste, das will ich aber nicht weil es sehr unschön aussieht und der für den ich das programmiere legt auf Design saumässig viel Wert. Am Liebsten wäre mir Weg 1. Bloss wie? * Ich geb auf... *


Zuletzt bearbeitet von AndiN am So 13.04.2008 17:14, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Darkdragon

Dabei seit: 23.05.2006
Ort: Berlin
Alter: 41
Geschlecht: Männlich
Verfasst So 13.04.2008 18:54
Titel

Antworten mit Zitat Zum Seitenanfang

Probieres mal hier mit:

Code:
<?php
$domain="http://www.muster.de/html/sites/4343/hfhfhf/test.php";

$domai=str_replace("http://","",$domain);

$domain2 = explode("/",$domai);
echo $domain2[0];

?>
  View user's profile Private Nachricht senden
AndiN
Threadersteller

Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst So 13.04.2008 18:57
Titel

Antworten mit Zitat Zum Seitenanfang

@Darkdragon:

Das Problem ist diese $domain
Woher kriege ich die? Ich durchsuche ja einen Fließtext. *Schnief*
  View user's profile Private Nachricht senden
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst So 13.04.2008 19:47
Titel

Antworten mit Zitat Zum Seitenanfang

http://de.php.net/parse_url ist dein Freund.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
AndiN
Threadersteller

Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst So 13.04.2008 19:56
Titel

Antworten mit Zitat Zum Seitenanfang

tacker hat geschrieben:
http://de.php.net/parse_url ist dein Freund.


Das ist schonmal etwas was ich sehr gut verwenden kann wenn ich die URL im Fliestext (allerdings können das ja auch mehrere sein) extrahieren konnte. Momentan extrahiere ich jedoch aber ja nichts sondern ersetze Strings die gewisse - durch reguläre Ausdrücke definierte - Merkmale aufweisen. Ich habe also letzendlich keine Variable auf die ich die Funktion parse_url loslassen könnte. Das ist ja mein Problem.
  View user's profile Private Nachricht senden
AndiN
Threadersteller

Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst Mo 14.04.2008 00:04
Titel

Antworten mit Zitat Zum Seitenanfang

Ich könnte natürlich NACH der Ersetzung nach folgendem Suchen:

<a href="http://www.blabla.de/muster/muster.html" target="_blank">http://www.blabla.de/muster/muster.html</a>

Und es dann mit <a href="http://www.blabla.de/muster/muster.html" target="_blank">http://www.blabla.de</a>

Also wieder mit preg_replace() ersetzen. Aber wie ist dafür der reguläre Ausdruck?
.. baaaah.. ich werde langsam kirre. * Ich geb auf... *


Zuletzt bearbeitet von AndiN am Mo 14.04.2008 00:04, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen frage bzgl. if/else
Frage bzgl. Contact Code
Frage bzgl. Anti Alias
Frage bzgl. Instanzen ansprechen
Frage bzgl. Schatten über der Googlemap
Unterschiede $Ausgabe und $_POST["Ausgabe"] ???
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.