首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP转PHP ...简化php代码

ASP转PHP ...简化php代码
EN

Stack Overflow用户
提问于 2012-05-03 23:40:05
回答 3查看 652关注 0票数 0

我正在将一些asp代码转换成php,从我在php中所做的事情来看,有没有更好的方法来简化事情,这样我就不需要写额外的代码了?

asp

代码语言:javascript
复制
xFirstName = LCase(Replace(request.form("xFirstName"), "'", "''"))
xFirstName = UCase(Left(xFirstName,1))& Mid(xFirstName,2)

php

代码语言:javascript
复制
$xFirstName = strtolower(str_replace("'","''",$_POST["xFirstName"]));
$xFirstName = strtoupper(substr($xFirstName,0,1)).substr($xFirstName,1);
EN

回答 3

Stack Overflow用户

发布于 2012-05-03 23:47:01

看起来你想用双引号代替单引号,并将单词的第一个字母大写,你可以这样做:

代码语言:javascript
复制
ucwords(strtolower(str_replace("'","''", $_POST['xFirstName'])));

这将使传递到$_POST变量中的每个单词的第一个字母大写,因此,如果您只希望第一个单词大写,而不管xFirstName中有多少个单词,则应该使用ucfirst()而不是ucwords()

票数 1
EN

Stack Overflow用户

发布于 2012-05-03 23:52:44

代码语言:javascript
复制
strtoupper(substr($xFirstName,0,1)).substr($xFirstName,1);

可以有效地替换为

代码语言:javascript
复制
ucfirst($xFirstName)

至于第一行,它仍然是必需的-首先将字符串全部小写。尽管我会将str_replace作为最后的操作,因为它可能会稍微增加字符串的长度。)所以它变成了类似于..。

代码语言:javascript
复制
$xFirstName = str_replace("'", "''", 
    ucfirst(strtolower($_POST['xFirstName']))
);
票数 1
EN

Stack Overflow用户

发布于 2012-05-04 00:00:48

问题将出在名称、Peter O'HaraPeter Clayton-Moore等方面,当使用函数ucwords时,您最终会得到Peter O'haraPeter Clayton-moore

更好的解决方案是编写自己的函数,如下所示:

代码语言:javascript
复制
public function my_ucwords($name) {
    $name = ucwords(str_replace('\'', '\' ', str_replace('-', '- ', $name)));
    return str_replace('\' ', '\'', str_replace('- ', '-', $name));
}

然后继续执行以下操作:

代码语言:javascript
复制
$xFirstName = str_replace("'","''", my_ucwords(mb_strtolower($_POST["xFirstName"])));

不客气!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10434739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档