我有一个这样的字符串:
$image = 'galaxy-s6.jpg';
我想修剪.jpg
,并将-
替换为space
,并将每个单词的第一个字母设为大写:
Galaxy S6
我试过
$name = str_replace('.jpg', '', $image);
$name = str_replace('-', ' ', $name);
array_map('ucfirst', explode(' ', $name));
我得到了
galaxy s6
对我有任何暗示吗?
答案 0 :(得分:3)
您可以使用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
。
答案 1 :(得分:3)
array_map('ucfirst', explode(' ', $name));
这里唯一的问题是你忽略了array_map
的返回值。这样就可以了:
echo join(' ', array_map('ucfirst', explode(' ', $name)));
然而,总体上更为理智的方法是:
echo ucwords(str_replace('-', ' ', pathinfo($image, PATHINFO_FILENAME)));
请参阅:
答案 2 :(得分:2)
您可以使用:
$string = "galaxy-s6.jpg";
$exploded = explode(".",$string);
$replace = str_replace("-", " ", $exploded[0]);
$upper = ucwords($replace);
echo $upper;
<强>结果:强>
Galaxy S6
<强>解释强>
更新1:
假设您的文件名({。}}之间的(。)在这种情况下会失败,您可以使用explode()
preg_replace();
答案 3 :(得分:1)
只有少数功能:
<?php
$a = "galaxy-s6.jpg";
$a = str_replace(".jpg","",$a);
$a = str_replace("-"," ",$a);
echo ucwords($a)
?>
演示:http://sandbox.onlinephpfunctions.com/code/213abb52e2aed4265c5bc1af45c544559ae9757f
答案 4 :(得分:1)
试试这段代码:
function firstFunction(){
var d = jQuery.Deferred();
// some very time consuming asynchronous code...
setTimeout(function() {
console.log('1');
d.resolve();
}, 1000);
return d.promise();
}
function secondFunction(param){
console.log('parm = '+param);
var d = $.Deferred();
setTimeout(function() {
console.log('2');
d.resolve();
}, 10);
return d.promise();
}
firstFunction().pipe(secondFunction('OK'));