Jump to content

Archived

This topic is now archived and is closed to further replies.

amazinggrace1983

simple preg_match help needed

Recommended Posts

This will probably take 2 seconds for anyone else, but I've been thrown in the deep end so please help.
Basically, I create a string (its a file name), called file, which has the form ddmmmyy_number of anodes, eg. 22aug06_twoanodes or 03jul06_allanodes.

I need to check the file names are of the right format, using preg_match. Can anyone please tell me what needs to go in it?? I know it's something like

preg_match("/[\0123]\d\$month\[0][6789]\_$ANODE$/", $file)

but can I really just use $month and _$ANODE?? (these are arrays, created already)

Please please help. Very urgent!!!!
Grace 

Share this post


Link to post
Share on other sites
This does not consider invalid dates.

[code]
<pre>
<?php

$months = array(
'jan', 'feb', 'mar', 'apr', 'may', 'jun',
'jul', 'aug', 'sep', 'oct', 'nov', 'dec'
);
$anodes = array(
'two', 'all'
);

$tests = array(
'22aug06_twoanodes',
'03jul06_allanodes' ,
'01xxx08_noanodes',
'invalid_string',
);

foreach ($tests as $test) {
echo "<b>Checking $test...</b><br />";
if (!preg_match('/^\d{2}([a-z]{3})\d{2}_(.+?)anodes$/', $test, $matches)) {
echo "Invalid file name.<br />";
}
if (! in_array($matches[1], $months)) {
echo "Invalid month.<br />";
}
if (! in_array($matches[2], $anodes)) {
echo "Invalid anode type.<br />";
}
}
?>
</pre>
[/code]

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.