Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP修剪文本_Php_Trim - Fatal编程技术网

如何使用PHP修剪文本

如何使用PHP修剪文本,php,trim,Php,Trim,如何在php中修剪一些单词?榜样 pid=“5”或pid=“3”或 我想删除最后一个或您可以尝试: rtrim-从字符串末尾去除空白(或其他字符) 我建议使用这样的方法将SQL表达式粘在一起。首先构建一个简单表达式数组,然后使用或对其进行内爆: $pids = array('pid = "5"', 'pid = "3"'); $sql_where = implode(' OR ', $pids); 现在,$sql\u其中是字符串'pid=“5”或pid=“3”。即使$pids中只有一个元素,

如何在php中修剪一些单词?榜样

pid=“5”或pid=“3”或

我想删除最后一个

您可以尝试:

rtrim-从字符串末尾去除空白(或其他字符)

我建议使用这样的方法将SQL表达式粘在一起。首先构建一个简单表达式数组,然后使用或对其进行内爆:

$pids = array('pid = "5"', 'pid = "3"');

$sql_where = implode(' OR ', $pids);
现在,
$sql\u其中
是字符串
'pid=“5”或pid=“3”
。即使
$pids
中只有一个元素,您也不必担心剩余的OR

另外,另一个完全不同的解决方案是将
“false”
附加到您的SQL字符串中,这样它将以
“…或false”
结尾,这将使它成为一个有效的表达式


@RussellDias的答案才是你问题的真正答案,这些只是一些需要考虑的备选方案。

正则表达式也可以:

$str = 'pid="5" OR pid="3" OR';
print preg_replace('/\sOR$/', '', $str);
用于查找并删除结尾的

$string = "pid='5' OR pid='3' OR";
if(substr($string, -3) == ' OR') {
  $string = substr($string, 0, -3);
}
echo $string;

你觉得这个怎么样

$str='pid="5" OR pid="3" OR';    
$new_str=substr($str,0, strlen($str)-3);

另一个如此风格的回答机器人。@Col.Shrapnel:今天过得不好吗?在这里使用rtrim()很好,有点聪明(可能受到问题措辞的影响),并且比substr()更清楚地显示了陈述的目的。我们正在删除$string右端的“OR”字。看起来rtrim()是在单词级而不是字符级工作的(直到Col Shrapnel最后拼出来,我才意识到这一点),但我认为在这种情况下,如果你知道你的字符串总是以“或”结尾,这是一种很好的修剪方法。jeremy,你现在才知道。不能保证几年后的维护人员会注意到这种黑客行为。对于可维护性而言,一个清晰、独立的解决方案通常是最好的。您自己的解决方案就是一个很好的解决方案的例子,在这个解决方案中,可以很容易地向查询添加更多参数,而不会破坏任何内容。rtrim()并不是那么优秀,因为它确实有一些怪癖和不明显的副作用。rtrim()将从末尾删除“OR”,但它也将删除“RO”,或者仅删除“R”或“O”,如果字符串恰好以这样的方式结尾的话。它可能不是最可靠的解决方案,但它是有效的,而且我认为它并不像人们想象的那么邪恶。虽然它会起作用,但它比其他方法更复杂,计算成本也更高necessary@bemance例如我不能否认这一点。在我的电脑上快速测试了100万次,结果显示:
preg\u replace
2428ms,
rtrim
624ms,
substr
604ms,
introde
660ms-
preg\u replace
大约比其他解决方案慢4倍。
$str='pid="5" OR pid="3" OR';    
$new_str=substr($str,0, strlen($str)-3);