I am new to regex but I don't have the time right now to learn it, yet I need to convert eregi("^..?$", $file) to a preg_match() but I don't know how to do it, can anybody help me?
Also giving me a little understanding of how it works would also be nice to have :)
The piece of code:
$fileCount = 0;
while ($file = readdir($dh) and $fileCount < 5){
if (eregi("^..?$", $file)) {
continue;
}
$open = "./xml/".$file;
$xml = domxml_open_file($open);
//we need to pull out all the things from this file that we will need to
//build our links
$root = $xml->root();
$stat_array = $root->get_elements_by_tagname("status");
$status = extractText($stat_array);
$ab_array = $root->get_elements_by_tagname("abstract");
$abstract = extractText($ab_array);
$h_array = $root->get_elements_by_tagname("headline");
$headline = extractText($h_array);
if ($status != "live"){
continue;
}
echo "<tr valign=top><td>";
echo "<a href=\"showArticle.php?file=".$file . "\">".$headline . "</a><br>";
echo $abstract;
echo "</td></tr>";
$fileCount++;
}
Change
eregi("^..?$", $file)topreg_match("/^\.\.?$/i", $file)In eregi you didn't have to put openers and closures for regex, but with preg you have to (those are these two slashes on start and end).
Basically this regex matches all file names that start with . and end there or have another . and then end there, so it would match files . and ..
The faster way of doing this is like this
You want to try to avoid using
continueandbreakstatements since they are bad for good code structure because you don't have clear idea of why're they there when you look at the code.