Archief - PHP: Regular expression voor url

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Incinnerator

Legacy Member
Yu allemaal

Ik zou een Regular expression moeten hebben voor url te controleren.
Ik heb al hier gezocht en op phpfreakz maar je vindt telkens hoe je een e-mail moet controleren.

Kan iemand die 1ne lijn posten. Bedankt

Incinnerator

Dark_vagabond

Legacy Member
PHP:
if(ereg("^([_a-zA-Z-0-9-]+\.)+([a-zA-Z]{2,4})$", $homepage)){
//juist
  if(!ereg("^http:////", $homepage)) {
//http:// ontbreekt
   $homepage = "http://" . $homepage;
  }
$website = "Homepage: <a href=\"". $homepage. " target=\"_blanc\">".$homepage. "</a>";
}

het kan zijn dat er fouten in zitten, hier ben ik ni zo goed in :D

Slicer

Legacy Member
PHP:
preg_match ("/^http:\/\/([a-z0-9\-]+\.)+[a-z]{2,4}$/is", $link)

@Dark_vagabond: je zou nooit een match hebben want je was http:// vergeten in je eerste expressie (door ^ begint hij van het begin) en controleren of http:// vanvoor staat doe je best met substr:

PHP:
substr($link, 0, 7) == "http://"

killgore

Legacy Member
Slicer zei:
PHP:
preg_match ("/^http:\/\/([a-z0-9\-]+\.)+[a-z]{2,4}$/is", $link)
[/PHP]
PHP:
preg_match ("#^http://([a-z0-9\-]+\.)+[a-z]{2,4}$#i", $link)
Multilines in een url, zouk graag nog is zien :ironic:, voor de rest klopt die nog redelijk :), ik denk enkel dat je mssch bij je eerste + een ? moet gebruiken (could be wrong, ik moet men kennis over greedy en ungreedy eens wat bijschaven). Ik heb enkel een andere delimiter gebruikt omdat die toch wat duidelijker is :)

Slicer

Legacy Member
t'moest dus S zijn ipv s voor optimalisatie bij meerdere keren dezelfde regexp en ik bedenk net dat mijn regexp enkel domeinnamen valideerd en geen linken met dir-structuur erachter. De delimiter is kwestie van gewoonte, ik gebruik / omwille van gewoonte in vim. Greedy en ungreedy mogen allebei daar er geen . in voorkomt en die er zeker achter moet staan

PHP:
preg_match ("/^http:\/\/([a-z0-9\-]+\.)+[a-z]{2,4}((\/[a-z0-9\-]+)+(\/[a-z0-9\_\.]+)?)?/iS", $link)

dit lijkt me een redelijk goede regexp voor domeinaam + dir + filenaam te zoeken
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan