从图像文件名php删除扩展名

I am loading a folder of images into a html page using the following php code.

The problem I am having is that the file name which is being brought through in order to be used as the image caption is showing the file extension.

The part of the code where the name is being pulled is the title='$img'

How do I get it to remove the file extension?

<?php
$string =array();
$filePath='images/schools/';  
$dir = opendir($filePath);
while ($file = readdir($dir)) { 
    if (eregi("\.png",$file) || eregi("\.jpeg",$file) || eregi("\.gif",$file) || eregi("\.jpg",$file) ) { 
        $string[] = $file;
    }
}
while (sizeof($string) != 0) {
    $img = array_pop($string);
    echo "<img src='$filePath$img' title='$img' />";
}

?>

For a "state-of-the-art" OO code, I suggest the following:

$files = array();
foreach (new FilesystemIterator('images/schools/') as $file) {
    switch (strtolower($file->getExtension())) {
        case 'gif':
        case 'jpg':
        case 'jpeg':
        case 'png':
            $files[] = $file;
            break;
    }
}

foreach ($files as $file) {
    echo '<img src="' . htmlentities($file->getPathname()) . '" ' .
         'title="' . htmlentities($file->getBasename('.' . $file->getExtension())) . '" />';
}

Benefits:

  • You do not use the deprecated ereg() functions anymore.
  • You escape possible special HTML characters using htmlentities().
$file_without_ext = substr($file, 0, strrpos(".", $file));

You can get the filename without the extension using pathinfo so for title='' you could use pathinfo($file, PATHINFO_FILENAME);