У меня есть такая строка:
$image = 'galaxy-s6.jpg';
Я хочу обрезать .jpg
и заменить -
с space
и сделайте первую букву каждого слова в верхнем регистре следующим образом:
Galaxy S6
Я старался
$name = str_replace('.jpg', '', $image);
$name = str_replace('-', ' ', $name);
array_map('ucfirst', explode(' ', $name));
я получил
galaxy s6
Любые намеки для меня?
Ты можешь использовать ucwords()
функция:
<?php
$image = 'galaxy-s6.jpg';
$name = str_replace('.jpg', '', $image);
$name = str_replace('-', ' ', $name);
echo ucwords($name);
?>
$name = str_replace('.jpg', '', $image);
заменит .jpg
с пустым.
$name = str_replace('-', ' ', $name);
заменит -
с пустым.
echo ucwords($name);
будет использовать первую букву каждого слова (galaxy
а также s6
)
альтернативно, Вы также можете взорвать последнюю часть имени файла, .jpg
или любое другое расширение файла и удалите его, используя explode()
функция:
<?php
$image = 'galaxy-s6.jpg';
$name = explode(".", $image);
$name = str_replace('-', ' ', $name[0]);
echo ucwords($name);
?>
Таким образом, оба метода будут повторяться Galaxy S6
,
array_map('ucfirst', explode(' ', $name));
Единственная проблема здесь заключается в том, что вы игнорируете возвращаемое значение array_map
, Это сделало бы это:
echo join(' ', array_map('ucfirst', explode(' ', $name)));
Тем не менее, общий более разумный подход заключается в следующем:
echo ucwords(str_replace('-', ' ', pathinfo($image, PATHINFO_FILENAME)));
Увидеть:
Вы можете использовать это:
$string = "galaxy-s6.jpg";
$exploded = explode(".",$string);
$replace = str_replace("-", " ", $exploded[0]);
$upper = ucwords($replace);
echo $upper;
Результат:
Galaxy S6
Объяснение:
ОБНОВЛЕНИЕ 1:
Предположим, если у вас есть (.) Между вашим именем файла, чем explode()
не удастся в этом случае вы можете справиться с этим с помощью preg_replace();
// your string
$string = "galaxy-s6.jpg";
// replace after .
$removed = preg_replace('/\\.[^.\\s]{3,4}$/', '', $string);
// replace - between file name
$replace = str_replace("-", " ", $removed);
// ucwords for first letter capital
$upper = ucwords($replace);
echo $upper;
Всего несколько функций:
<?php
$a = "galaxy-s6.jpg";
$a = str_replace(".jpg","",$a);
$a = str_replace("-"," ",$a);
echo ucwords($a)
?>
Демо: http://sandbox.onlinephpfunctions.com/code/213abb52e2aed4265c5bc1af45c544559ae9757f
Попробуйте этот код:
$string = 'galaxy-s6.jpg';
$name = str_replace('.jpg', '', $string);
$name = str_replace('-', ' ', $name);
$name = explode(' ', $name);
foreach ($name as $key => $value) {
$name[$key] = ucfirst($value);
}
$name = implode(' ', $name);
echo $name;// => Galaxy S6