2016-05-28 3 views
0

Итак, у меня есть $randomImage, если бы я был эхом, я бы получил "images/image_name.jpg". Я только хочу, чтобы он эхо отозвал изображение_имя. Мне удалось скрыть "images/", но как я могу сделать то же самое с ".jpg"?Заменить два находок с str_replace

Вот мой код:

$imagesDir = 'images/'; 
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); 
$randomImage = $images[array_rand($images)]; 
echo str_replace("images/","","$randomImage"); 
+1

Вы можете использовать [базовое имя] (http://php.net/manual/en/function.basename. php). – lolbas

+1

'echo pathinfo ($ randomImage) ['basename'];' – Steve

+0

@Steve, который выводит на image_name.jpg, я хочу, чтобы он выводил на image_name –

ответ

0

Попробуйте

$replace = array("images/",".jpg"); 
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); 
$randomImage = $images[array_rand($images)]; 
echo str_replace($replace,"","$randomImage"); 
2

Попробуйте использовать pathinfo с PATHINFO_FILENAME аргументом на пути изображения.

$imagesDir = 'images/'; 
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); 
$randomImage = $images[array_rand($images)]; 
echo pathinfo($randomImage, PATHINFO_FILENAME); 

e.g.

var_dump(pathinfo('images/image_name.jpg', PATHINFO_FILENAME)); 
//string(4) "image_name" 

В качестве альтернативы вы можете получить информацию о каждой части файла.

$pinfo = pathinfo('images/image_name.jpg'); 
var_dump($pinfo); 
/* 
array(4) { 
    ["dirname"]=> 
    string(6) "images" 
    ["basename"]=> 
    string(14) "image_name.jpg" 
    ["extension"]=> 
    string(3) "jpg" 
    ["filename"]=> 
    string(10) "image_name" 
} 
*/ 

позволяет использовать

$pinfo['filename']; //image_name 

Ресурс: http://php.net/manual/en/function.pathinfo.php

0

str_replace() могут принимать массивы в качестве аргументов как для поиска и замены параметров.

Пример:

$myString = 'this and that are pretty awesome!'; 
$search = array('this', 'that'); 
$replace = array('you', 'I'); 

$myOutput = str_replace($search, $replace, $myString); 

echo $myOutput; // you and I are pretty awesome! 

В вашем случае, вы можете использовать:

$imageName = str_replace(array('/images/','.jpg'), '', '/images/imageName.jpg'); 
Смежные вопросы