preg_match für hp-link?!

Headymaster

Erfahrenes Mitglied
Hallo!

Also ich bin ja nun schon lange genug mit php unterwegs , aber preg_match habe ich immer noch nicht verstanden...selbst nicht die Beispiele auf php.net.. :( *schäm*

Punkt ist, dass ich ne preg_match Funktion für nen hp-link-check brauche....nur ich kanns halt net :(

Würde mich super freuen wenn mir vll jmd. dabei helfen kann oder paar tipps geben kann :)

MFG Nilson
 
In wie fern meinste denn das jetzt mit HP-Link-Check ...
Meinste dass du z. B.: das ganze über switch also mit GET includest und dann einen Link wie Guestbook hast und prüfen möchtest ob dieser vorhanden ist

Meine zum Beispiel:
PHP:
index.php?section=guestbook
index.php?section=home
index.php?section=index

if(preg_match('/guestbook|home|index/', $_GET['section'])) {   
// weitere Verarbeitung
    } else {
// tja zurückverlinkung auf index.php 
    }

Meinste sowas
Dieses Beispiel müsste jetzt auch nur funktionieren wenn diese Wörter dann lein sind -.-
oder du schreibst dies dann wird die Groß- und Kleinschreibung nicht beachtet


PHP:
if(preg_match('/guestbook|home|index/i', $_GET['section'])) {
 
Also ich meine das so, dass ich in meinem GB gerne prüfen möchte, ob die Besucher wirklich einen hp-link eingegeben habe noder nur was andres.....weil man bei dem Feld Homepage nur einen hp-link eingeben darf und nicht etwa irgendwas anderes... :)

MFG Nilson
 
Ja ich hatte schon oft genug die Suche benutzt aber nie so richtig das richtige gefunden...

und das mit dem preg_match vom GS_Master....geht bei mir net wirklich...

Also sollte True zurückgegeben werden, müsste der linjk ja stimmen...aber egal wie ich den link eingebe....es wird immer false zurückgegeben...

es geht kein:

http://www.test.de
http://www.test.de
http://test.de

:)

MFG Nilson
 
So funktioniert das bei meinem Guestbook.
PHP:
// Gültigkeit der Homepage Syntax
      $hp = preg_match("!http://([a-z0-9\-_]+\.)+[a-z]{2,6}(/?[a-z0-9\-_]+\.)*/?$!i",$_POST['feld34']) ? $_POST['feld34'] : '';
 
Also wirklich was geht bei mir denn nich
Musst halt mal so eingeben wie sich das auch gehört -.-

PHP:
<?php

$test = "http://www.google.de/";

if(preg_match("/^(http|https):\/\/(([A-Z0-9][A-Z0-9_\-ÄÜÖ]*)(\.[A-Z0-9ÄÜÖ][A-Z0-9_\-ÄÜÖ]*)+)(:(\d+))?\//i",$test)){
echo "geht";
}else{
echo "nicht";
}  

?>

und was gibt er uns aus
"geht" natürlich
Willst es nich so haben einfach das " / " am ende entfernen ( // )


es kommt nur drauf an, dass dies alles im link vorkommt ...

http:// oder https://
und am schluss natürlich / es sei denn du entfernst es ...
 
Zuletzt bearbeitet:
Man halte sich bitte an die Spezifikationen und denke sich nicht irgendwelche regulären Ausdrücke aus.
Code:
(?:https?://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?)(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*))*)(?:\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*))?)?)
 
Zurück