Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP] Correct gebruik van eregi()?

BasHamar
2 antwoorden
  • Beste forumgenoten,

    Ik ben bezig een gebruikerssysteem te schrijven en gebruik daarbij eregi() om te controleren of de gebruikersnaam alleen uit toegestane tekens bestaat. Het is nog niet af, maar bij het inlezen in de stof kwam ik iets vreemds tegen en wil ik dit graag aan jullie voorleggen om te kijken of ik het nu begrijp of juist niet.

    Op PHP.net staat bij eregi() het volgende voorbeeld:
    [code:1:51e3965511]<?php
    $string = 'XYZ';
    if (eregi('z', $string)) {
    echo "'$string' contains a 'z' or 'Z'!";
    }
    ?> [/code:1:51e3965511]
    In een artikel op Sitepoint gebruiken ze de volgende code:
    [code:1:51e3965511]eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$', $email)[/code:1:51e3965511]
    Is de code die Sitepoint suggereert dan niet "verkeerd"? In het PHP.net-voorbeeld wordt toch duidelijk getoond dat eregi() niet hoofdlettergevoelig is, dus waarom zou je dat dan wel expliciet in je regexp gebruiken? Zo onderstaande code dan niet logischer zijn:
    [code:1:51e3965511] // Tadaa! Korter door het verwijderen van A-Z
    eregi('^[a-z0-9._-]+@[a-z0-9-]+\.[a-z.]{2,5}$', $email) [/code:1:51e3965511]
    Of mis ik nu juist iets heel essentieels?

    - Bas
  • [quote:08851f206d]As you've probably noticed, I've included letters both in capitals and lower case. In this instance, this isn't strictly necessary, as we're using the eregi (case insensitive) function. But I've included them here for completeness, and to show you how the functions work.[/quote:08851f206d]
    Jouw oplossing is dus ook goed maar als je met functies als preg_replace gaat werken, moet je wel a-zA-Z gebruiken of de selector 'i' toevoegen die m dan weer hoofdletterongevoelig maakt. Vandaar dat ze m toch even noemen.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.