各位程序员,
我想要完成的是一种使用类从目录中获取图像的动态方法image
。
我坚持提供返回匹配项的确切字符串,但是当尝试"
与返回的匹配项进行回显时,如果未提供整个字符串,则图像与部分字符串加上扩展名链接。
<?php $image = new image; ?>
调用类函数:
<?php $image -> get_image('this_string_1',''); ?>
图片目录内容
<?php $path = $_SERVER['DOCUMENT_ROOT'].'/images/;'?>
this_string_1.png
this_string_2.png
this_string_3.png
班上:
<?php
class image{
function get_image($name,$class){
if(strlen($class)==0){ $class="default"; }
##@@[ Checks the type of image
global $doc_root,$html_path;
if($handle = opendir($doc_root.'/images/')){
while(false !==($value = readdir($handle))){
if($value !== '..' && $value!=='.'){
$extention;
$ext_jpeg = substr($value,-3);
if($ext_jpeg=='jpg'){
$extention=".jpg";
}
$ext_png = substr($value,-3);
if($ext_png=='png'){
$extention=".png";
}
$ext_gif = substr($value,-3);
if($ext_gif=='gif'){
$extention='.gif';
}
}
switch($extention){
case '.jpg':
if(preg_match("/$name/",$value,$result)){
foreach($result as $jpg){
echo '<img class="'.$class.'" src="'.$html_path.'/images/'.$jpg.'.jpg">';
}
}
break;
case '.png':
if(preg_match("/$name/",$value,$result)){
foreach($result as $png){
echo '<img class="'.$class.'" src="'.$html_path.'/images/'.$png.'.png">';
}
}
break;
case '.gif':
if(preg_match("/$name/",$value,$result)){
foreach($result as $gif){
echo '<img class="'.$class.'"src="'.$html_path.'/images/'.$gif.'.gif">';
}
}
break;
}
}
}
}
}
?>
我相信有很多方法可以完成这样的事情。任何建议将不胜感激。
按照马丁斯的建议。我删除了 if 和 switch 语句,并在第二个 if 语句中将其替换为“substr”。
<?php
class image{
function get_image($name,$class){
if(strlen($class)==0){ $class="default"; }
global $doc_root,$html_path;
if($handle = opendir($doc_root.'/images/')){
while(false !==($value = readdir($handle))){
if($value !== '..' && $value!=='.' && substr($value, 0, -4)==$name){
echo '<img src="'.$html_path.'/images/'.$value.'">';
}
}
}
}
}
?>