如何删除 PHP 变量从末尾到第一个 space 的所有字符?

How to delete all chars from end to first space of PHP variable?

我想删除 PHP 中 String 变量的最后一个字。我试着按照这个代码去做:。但这并没有解决我的问题。

我想将它用于 SQL 参数:

$sql_request = "SELECT fullname FROM names WHERE lastname='johnson' and city='oxford' ";


$sql_request = preg_replace('/\W\w+\s*(\W*)$/', '', $sql_request);

echo $sql_request;     

具体来说,我需要删除整个最后一个参数:city='oxford'。 (我需要从头到尾全部删除space) 但是我的代码的结果将是:

SELECT fullname FROM names WHERE lastname='johnson' and city='

但我需要这个:

SELECT fullname FROM names WHERE lastname='johnson' and

那么如何删除整个最后一个参数而不是其中的一部分? 谢谢。

如果不想和REGEX Devil共舞,可以使用更简单的机制

$sql_request = "SELECT fullname FROM names WHERE lastname='johnson' and city='oxford' ";

$sql_request = trim($sql_request);
$pos = strrpos($sql_request, ' ');
$sql_request = substr($sql_request, 0, $pos);   
echo $sql_request;

结果

SELECT fullname FROM names WHERE lastname='johnson' and

或者将其全部包装成一行

$sql_request = substr( $sql_request, 0, strrpos(trim($sql_request), ' '));     
echo $sql_request;

根据评论中的问题更新

$pos = strrpos($sql_request, ' and');
$sql_request = substr( $sql_request, 0, $pos);   
echo $sql_request;

或者将其全部包装成一行

$sql_request = substr( $sql_request, 0, strrpos($sql_request, ' and'));     
echo $sql_request;