2011-11-26 119 views
0

我想添加一個鏈接到joomla中的每個幻燈片圖片,但我一直在從沒有擴展名的照片中獲取文件名。 這是相關代碼:在沒有擴展名的情況下獲取文件名在php

<?php 
$imgrootdir = "templates/".$this->template."/images/"; 
if ($headerType == "0" || $headerType == "2") { 
    echo '<img src="'.$imgrootdir.$myimage.'" alt="" />'; 
} elseif ($headerType == "1" || $headerType == "3") { 
    $picDir= $imgrootdir.$myfolder; 
    $picDir .="/"; 
    if (file_exists($picDir) && is_readable($picDir)) { 
    $folder = opendir($picDir); 
    } else { 
    echo '<div class="message">Error! Please check the parameter settings and make sure you have entered a valid image folder path!</div>'; 
    return; 
    } 
    $allowed_types = array("jpg","JPG","jpeg","JPEG","gif","GIF","png","PNG","bmp","BMP"); 
    $index = array(); 
    while ($file = readdir ($folder)) { 
    if(in_array(substr(strtolower($file), strrpos($file,".") + 1),$allowed_types)) {array_push($index,$file);} 
    } 
    closedir($folder); 
    if($display == 'random') {shuffle($index);} else {sort($index);} 

    foreach ($index as $file) { 
    $finalpath = $picDir.$file; 
    // output 
    echo '<a href="http://testcl.net46.net/index.php/''"><img src="'.$finalpath.'" alt="'.$file.'" /></a>'; 

    } 
    if ($showControl) echo '<div id="slcontrol"> </div>'; 
} 
?> 

回答

0

那麼首先它是使用Joomla的內置的文件處理功能的最佳實踐。請參閱http://docs.joomla.org/How_to_use_the_filesystem_package。我認爲這些函數內置了錯誤處理。另請參閱JPATH。您可以使用這些功能剝離標籤像這樣:

$name = JFile::stripExt($filename); 
+0

我試過你說的話,但不是不帶擴展名的文件名,有沒有索引擴展。請幫忙。我目前的代碼是:''//輸出 $ name = JFile :: stripExt($ filename); echo''.$file.''; } if($ showControl)echo'

'; } ?>' – mwenta

+0

我假設您的href =「testcl.net46.net/index.php /..name名稱最後有實際的文件名,即mypic.jpg請注意」/ index。 php /「不是一個文件夾,它是一個文件本身,如果你的mypic.jpg位於你網站的根目錄下,請嘗試href =」testcl.net46.net/$name「 – skibulk

+0

也不行。每個圖像都有鏈接http://testcl.net46.net/index和404s。到我的網頁的鏈接是http://testcl.net46.net/index.php/link,這就是爲什麼我把index.php放在之前。 $ name ..請問我應該把代碼放在哪裏?我的確做錯了。 – mwenta

相關問題