【发布时间】:2011-01-04 11:02:21
【问题描述】:
如果最后一个字符是句点,我如何删除它?
$string = "something here.";
$output = 'something here';
【问题讨论】:
如果最后一个字符是句点,我如何删除它?
$string = "something here.";
$output = 'something here';
【问题讨论】:
$output = rtrim($string, '.');
(参考:rtrim on PHP.net)
【讨论】:
…。如果你去掉最后一个点,而剩下的仍然是一个点,那么问题标题就没有多大意义了,不是吗?
使用 rtrim 替换所有“.”最后,不仅仅是最后一个字符
$string = "something here..";
echo preg_replace("/\.$/","",$string);
【讨论】:
trim 中使用character_mask 基本上会删除整个字符串中的任何字符实例
仅当它是句点时才删除最后一个字符而不诉诸preg_replace,我们可以将字符串视为一个字符数组,如果它是一个点,则删除最后一个字符。
if ($str[strlen($str)-1]==='.')
$str=substr($str, 0, -1);
【讨论】:
=== 而不是== 来检查类型是否相等
我知道问题已经解决了。但也许这个答案会对某人有所帮助。
rtrim() - 从字符串末尾去除空格(或其他字符)
ltrim() - 从字符串的开头去除空格(或其他字符)
trim() - 从字符串的开头和结尾去除空格(或其他字符)
对于去除字符串末尾的特殊字符或者字符串末尾是否包含动态特殊字符,我们可以通过正则表达式来完成。
preg_replace - 执行正则表达式搜索和替换
$regex = "/\.$/"; //to replace the single dot at the end
$regex = "/\.+$/"; //to replace multiple dots at the end
$regex = "/[.*?!@#$&-_ ]+$/"; //to replace all special characters (.*?!@#$&-_) from the end
$result = preg_replace($regex, "", $string);
这里有一些例子来理解 $regex = "/[.*?!@#$&-_ ]+$/"; 何时应用于字符串
$string = "Some text........"; // $resul -> "Some text";
$string = "Some text.????"; // $resul -> "Some text";
$string = "Some text!!!"; // $resul -> "Some text";
$string = "Some text..!???"; // $resul -> "Some text";
希望对你有帮助。
谢谢:-)
【讨论】:
&-_
我知道这个问题有些陈旧,但我的回答可能对某人有帮助。
$string = "something here..........";
ltrim 将删除前导点。例如:- ltrim($string, ".")
rtrim rtrim($string, ".") 将删除尾随点。
trim trim($string, ".") 将删除尾随和前导点。
你也可以通过正则表达式来做到这一点
preg_replace will remove 可用于删除末尾的点/点
$regex = "/\.$/"; //to replace single dot at the end
$regex = "/\.+$/"; //to replace multiple dots at the end
preg_replace($regex, "", $string);
希望对你有帮助。
【讨论】:
最后一个字符可以通过不同的方式删除,这里有一些
rtrim()$output = rtrim($string, '.');
Regular Expressionpreg_replace("/\.$/", "", $string);
substr() / mb_substr()
echo mb_substr($string, 0, -1);
echo substr(trim($string), 0, -1);
substr() 与 trim()
echo substr(trim($string), 0, -1);
【讨论】:
您可以使用 php 的 rtrim 功能,它可以让您修剪存在于最后位置的数据。
例如:
$trim_variable= rtrim($any_string, '.');
最简单快速的方法!!
【讨论】:
示例:
$columns = array('col1'=> 'value1', 'col2' => '2', 'col3' => '3', 'col4' => 'value4');
echo "Total no of elements: ".count($columns);
echo "<br>";
echo "----------------------------------------------<br />";
$keys = "";
$values = "";
foreach($columns as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
$keys = $keys."'".$x."',";
$values = $values."'".$x_value."',";
echo "<br>";
}
echo "----------------------Before------------------------<br />";
echo $keys;
echo "<br />";
echo $values;
echo "<br />";
$keys = rtrim($keys, ",");
$values = rtrim($values, ",");
echo "<br />";
echo "-----------------------After-----------------------<br />";
echo $keys;
echo "<br />";
echo $values;
?>
输出:
Total no of elements: 4
----------------------------------------------
Key=col1, Value=value1
Key=col2, Value=2
Key=col3, Value=3
Key=col4, Value=value4
----------------------Before------------------------
'col1','col2','col3','col4',
'value1','2','3','value4',
-----------------------After-----------------------
'col1','col2','col3','col4'
'value1','2','3','value4'
【讨论】: