PHP 一个函数实现字符串反转
这其实还是一道题目OTZ当然不用在意这些细节,写出来之后它已经不算是题目了吧。
但我写的函数有个缺点,那就是它是以length
分割的(因为还不会正则表达式
),在PHP 语法糖一枚中提到过:
length = 1
代表 截取一个字节,所以对于中文不适用。
2014年02月02日更新:PHP 实现中文字符串截取无乱码修复中文支持
中文截取就会出现乱码问题。
补刀:如果不是题目的话可以使用官方自带函数strrev()
扩展阅读:http://www.w3school.com.cn/php/func_string_strrev.asp
先来看一下函数部分吧。
function reversal($origin) {
$result = ""; //设定初值
while (strlen($origin) > 0) {
$result .= substr($origin, -1); //截取最后一个
$origin = substr($origin, 0, -1); //截取除了最后一个
}
return $result;
}
思路就是一个个截取了之后反向拼接,有点像刀削面(?)(就知道吃)
完整版的源码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Reversal</title>
</head>
<body>
<form action="reversal.php" method="post">
<input type="text" name="str" placeholder="输入一个字符串">
<input type="hidden" name="shot" value="shot">
<input type="submit" value="发射!">
</form>
<?php
if(!empty($_POST['shot'])) {
$problem = FALSE;
if(empty($_POST['str'])) {
$problem = TRUE;
echo '请输入字符串╮(╯-╰)╭';
}
if(!$problem) {
$origin = $_POST['str'];
$result = reversal($origin);
echo '原始:' . $origin . '<br/>';
echo '结果:' . $result . '<br/>';
}
}
function reversal($origin) {
$result = ""; //设定初值
while (strlen($origin) > 0) {
$result .= substr($origin, -1); //截取最后一个
$origin = substr($origin, 0, -1); //截取除了最后一个
}
return $result;
}
?>
</body>
</html>
植入部分
如果您觉得文章不错,可以通过赞助支持我。
如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。