0

次のphpコードを使用して、画像のフォルダーをhtmlページにロードしています。

私が抱えている問題は、画像のキャプションとして使用するために持ち込まれているファイル名がファイル拡張子を示していることです。

名前がプルされているコードの部分は、title='$img'です。

ファイル拡張子を削除するにはどうすればよいですか?

<?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' />";
}

?>

4

4 に答える 4

3

pathinfoを使用して拡張子なしでファイル名を取得できるため、 title='' に使用できますpathinfo($file, PATHINFO_FILENAME);

于 2012-08-26T22:43:21.893 に答える
1
$file_without_ext = substr($file, 0, strrpos(".", $file));
于 2012-08-26T22:42:04.233 に答える
0

「最先端の」オブジェクト指向コードについては、次のことをお勧めします。

$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())) . '" />';
}

利点:

  • 非推奨のereg()関数はもう使用しません。
  • を使用して、可能性のある特殊な HTML 文字をエスケープしhtmlentities()ます。
于 2012-08-26T23:00:56.737 に答える