Registrierung Mitgliederliste Administratoren und Moderatoren Zur Filebase Suche Häufig gestellte Fragen [WN]KickTipp3 V3.0 HF3 Zur Startseite  

WebNutzer » [WN] Hilfeforen » Sonstiges » Eine"kleine" Frage hätte ich zu php. (Interne Links zulassen) » Hallo Gast [anmelden|registrieren]
Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Highländer
Mitglied


Dabei seit: 05.09.2008
Beiträge: 40

Eine"kleine" Frage hätte ich zu php. (Interne Links zulassen) Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       IP Information Zum Anfang der Seite springen

Hallo,
eine "kleine" Frage hätte ich zu php.

Mit folgendern Quelltext, werden alle (internen + externen) Links für Gäste ausgeblendet in der acp/lib/class_parse.php, wenn es so eingestellt ist im ACP.

code:
$post = preg_replace("/\<a href=(.*?)\>(.*?)\<\/a\>/",
$hidelinksfromgueststext, $post); 


Wie könnte man es ändern, das interne Links zugelassen werden? Habe es ein wenig mit folgendem versucht... aber komme damit nicht weiter. Weiß nicht, wo und wie ich es einfügen muss.
Ich glaube auch, das man obiges "nur" umstellen muss.

code:
function ignoreDomain($url) {
$domains = array("*xxx.de*","*yyyyyy.de*");
usw 


Kann mir einer helfen deswegen?

Mfg

10.09.2008 11:56 Highländer ist offline Email an Highländer senden Beiträge von Highländer suchen Nehmen Sie Highländer in Ihre Freundesliste auf
Son Goku Son Goku ist männlich
Administrator




Dabei seit: 03.12.2006
Beiträge: 812

Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       IP Information Zum Anfang der Seite springen

Frag doch einfach vorher mit strpos() voher ab, ob in hidelinksfromgueststext deine Domain drin vorkommt.

10.09.2008 17:48 Son Goku ist offline Email an Son Goku senden Homepage von Son Goku Beiträge von Son Goku suchen Nehmen Sie Son Goku in Ihre Freundesliste auf
Highländer
Mitglied


Dabei seit: 05.09.2008
Beiträge: 40

Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       IP Information Zum Anfang der Seite springen

Du schreibst das so einfach daher, als ob es wirklich so einfach wäre.

Wo müsste ich was im oberen "Code" zufügen? Angenommen es wäre http://Meine Domain.de/

Jemand anderes sagte mir, das obiges umgestellt werden müsste und es nicht wirklich leicht wäre.

Dieser Beitrag wurde schon 1 mal editiert, zum letzten mal von Highländer am 10.09.2008 21:05.

10.09.2008 21:03 Highländer ist offline Email an Highländer senden Beiträge von Highländer suchen Nehmen Sie Highländer in Ihre Freundesliste auf
Son Goku Son Goku ist männlich
Administrator




Dabei seit: 03.12.2006
Beiträge: 812

Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       IP Information Zum Anfang der Seite springen

Stimmt.
Ich such jetzt schon bestimmt 30 Minuten an dem RegEx, ich schaff es aber nur deine Domain rauszufiltern, so dass die externen drin bleiben und nur deine verschwinden würden.

So würde dieser RegEx aussehen:
(mit Beispiel von webnutzer.de)
code:

/\<a href=\"?(((.*)((\.{1})|(\/{2})))?)webnutzer\.de((\/(.*))|\/?)\"?\>(.*?)\<\/a\>/


Der Ausdruck "webnutzer\.de" muss noch negiert werden, dann ist es geschafft.
Ich steh bestimmt schon Jahre vor dem Problem ein Teil eines RegEx negieren zu müssen, hab aber nie eine entsprechende Lösung gefunden, die auch funktionieren würde.


Hier eine einfache Lösung:
code:

if(strpos($post, "webnutzer.de") !== false) { ... }

Hier wird einfach nur gesucht, ob deine Domain irgendwo im Text steht und dann wird nicht ersetzt.
Der Nachteil ist hier aber, dass wenn mehrere Links in einem Post stehen und deine Domain ist dabei, werden die anderen nicht maskiert.

Hier wäre allerdings der nächste Lösungsanstz, dass man eine Schleife mit strpos() im Kopf baut. In der Schleife schneidet man x+1 (Länge bis zur Fundstelle + erstes Zeichen danach) mit substr() ab und setzt auf diesen den RegEX an. Dann beginnt der nächste Durchlauf. Nach der Schleife wird der RegEx nochmal geprüft und danach kannste sicher sein, dass nur noch deine Domain drin steht.

Den Code zu bauen hatte ich jetzt keine Zeit bzw. Lust zum testen mehr. Wenn du mich in 3-4 Tagen nochmal dran erinenrst, bastel ich da vielleicht was, obwohl die erste Methode viel eleganter wäre.

Vielleicht findest du ja noch einen, der es schafft meinen Ausdruck zu negieren. Kannst du Lösung dann ja wieder hier posten.

11.09.2008 21:43 Son Goku ist offline Email an Son Goku senden Homepage von Son Goku Beiträge von Son Goku suchen Nehmen Sie Son Goku in Ihre Freundesliste auf
Highländer
Mitglied


Dabei seit: 05.09.2008
Beiträge: 40

Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       IP Information Zum Anfang der Seite springen

Besten Dank für deine Mühe!!!

So Menschen wie dich, gibt es leider zu wenig. Für mich... biste einer von den "größten".

Darf ich dazu dein Name und dein Text erwähnen in 3 anderen Forums, die ich dir per PN heute zusende?

Weil im ersten der Programmierer deswegen sprachlos ist.... aber sich auch Gedanken machen wollte. Die beiden anderen müssten dir auch bekannt sein und dort konnte keiner wirklich etwas dazu schreiben.

Edit:
Werde im laufe des Tages obiges von dir heute mal antesten und später berichten.

Dieser Beitrag wurde schon 2 mal editiert, zum letzten mal von Highländer am 12.09.2008 09:26.

12.09.2008 09:17 Highländer ist offline Email an Highländer senden Beiträge von Highländer suchen Nehmen Sie Highländer in Ihre Freundesliste auf
Son Goku Son Goku ist männlich
Administrator




Dabei seit: 03.12.2006
Beiträge: 812

Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       IP Information Zum Anfang der Seite springen

Kannste gerne machen. Hab da kein Probelm damit.
Darfst auch gerne noch unser Board erwähnen. *G*

12.09.2008 18:47 Son Goku ist offline Email an Son Goku senden Homepage von Son Goku Beiträge von Son Goku suchen Nehmen Sie Son Goku in Ihre Freundesliste auf
 
Neues Thema erstellen Antwort erstellen
Gehe zu:

Powered by Burning Board Lite 1.0.2 © 2001-2004 WoltLab GmbH