ik heb een variabele met volgende inhoud: width="1024" height="650"
nu zou ik die 1024 daaruit willen halen, zodat ik deze waarde kan vergelijken met een vooraf bepaald getal (om te zien of die width kleiner is of niet).
<?
$width = "width='1024' height='650'";
preg_match("{[0-9]{3,4}}" , $width , $results);
//$results is een array met de resultaten
//normaal zal $results 2 key's hebben, niet dus xD :s
echo $results[0]; //eerste -> zal je 1024 zijn
?>
met ereg(); kom je niet zo ver want je kan daar alleenmaar mee vergelijken of een string aan een patroon voldoet. Je kan wel met preg_replace(); werken om tekst uit een string te selecteren, die geselecteerde tekst wordt geselecteerd op basis van een patroon.
Maar is het niet makkelijker om met explode(); alles in een array te zetten? dan kijk je of er een element alleen uit 4 getallen bestaat.
<?php
// $sBericht moet je ff aanpassen aan je eigen variable-naam...
preg_match_all('/^(width="(*.?)")$/si', $sBericht, $aMatches);
if (IsSet($aMatches[0]))
{
echo $aMatches[0];
}
else
{
echo 'Width is niet gevonden';
}
?>
<?php
// $sBericht moet je ff aanpassen aan je eigen variable-naam...
EDIT: bedoelde preg_match, maar heb nu even preg_match_all(); gebruikt, omdat dit een array terug geeft en mischien nog wel makkelijker kan zijn in zijn geval...
@b4nkr0bz0r: preg_replace heeft geen zin want dan geeft hij hoe ik denk dat jij het bedoelt verkeerd terug. En ipv explode kun je beter PHP.net: preg_split gebruiken als hij uit 3 of 4 getallen kan bestaan.