php - 如何从 PHP 变量的末尾到第一个空格删除所有字符?
问题描述
我想删除 PHP 中字符串变量的最后一个单词。我尝试按照以下代码进行操作:https ://stackoverflow.com/a/29428662/10490051 。但这并不能解决我的问题。
我想将它用于 SQL 参数:
$sql_request = "SELECT fullname FROM names WHERE lastname='johnson' and city='oxford' ";
$sql_request = preg_replace('/\W\w+\s*(\W*)$/', '$1', $sql_request);
echo $sql_request;
具体来说,我需要删除整个最后一个参数:city='oxford'。(我需要从头到尾删除所有空格)但是我的代码结果将是:
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;
推荐阅读
- xcode - 获取 onLongPressGesture 持续时间的值
- javascript - 用于输入类型号的 Angular 8 验证器
- python - 检查矩阵中的列是否重复并执行数字切换 - 数独 - Python
- javascript - 联系表单未向 PHP 发送下拉值
- laravel - PurgeCSS 移除第三方库 css - Laravel Mix / TailwindCSS
- react-navigation - 如何使用 React Navigation 5.x 在不同的选项卡中重置堆栈
- java - 如何使用 Java 检查 Google Cloud Storage 中是否存在文件夹?
- html - 为什么 html 地图和区域在移动设备上不起作用?
- presto - 如何在 Presto 中将日、月、年字段组合成日期?
- python - 从最深层次开始的块嵌套列表