如何在变量中输出字符串,删除使用 substr 函数找到的第一个字符
How to output a string in a variable removing the first character that is found using a substr function
您好,我有一个名为 $sql
的字符串,它是:
* FROM users WHERE users.id = '390'
(只是举个例子,可以是任何东西)
在我的函数中,我有一个 $sql
变量,它是上面的字符串。我希望去掉 FROM
之前的 *
。我的变量 $star
确实输出 *
,但是我如何编写 $sql
变量以排除它前面的 *
字符?
$sql = $this->pdoquery($a, $v);
$star = substr($sql, 1, 2);
$query = "DELETE " . $sql;
我无法更改 $sql
变量以在 pdoquery
函数中省略它,因为我将它用于 SELECT
等
要删除任何前导字符,您可以使用 php 函数 ltrim。
$sql = ltrim($sql, "*");
var_dump($sql); // Output: string(34) " FROM users WHERE users.id = '390'"
根据您的更新进行编辑:
因为你不能修改原来的变量,你可以这样简单地做:
$without_star = ltrim($sql, "*");
var_dump($sql); // Output: string(35) "* FROM users WHERE users.id = '390'"
var_dump($without_star); // Output: string(34) " FROM users WHERE users.id = '390'"
如果您只想删除星号'*'
您可以在您的代码中替换此行:
$star = substr($sql, 1, 2);
与:
$star = str_replace('*',"",$sql);
//this will remove all asterisk
如果您只需要替换第一次出现的“*”,请使用:
$star = preg_replace('/\*/', '', $sql, 1);
您好,我有一个名为 $sql
的字符串,它是:
* FROM users WHERE users.id = '390'
(只是举个例子,可以是任何东西)
在我的函数中,我有一个 $sql
变量,它是上面的字符串。我希望去掉 FROM
之前的 *
。我的变量 $star
确实输出 *
,但是我如何编写 $sql
变量以排除它前面的 *
字符?
$sql = $this->pdoquery($a, $v);
$star = substr($sql, 1, 2);
$query = "DELETE " . $sql;
我无法更改 $sql
变量以在 pdoquery
函数中省略它,因为我将它用于 SELECT
等
要删除任何前导字符,您可以使用 php 函数 ltrim。
$sql = ltrim($sql, "*");
var_dump($sql); // Output: string(34) " FROM users WHERE users.id = '390'"
根据您的更新进行编辑:
因为你不能修改原来的变量,你可以这样简单地做:
$without_star = ltrim($sql, "*");
var_dump($sql); // Output: string(35) "* FROM users WHERE users.id = '390'"
var_dump($without_star); // Output: string(34) " FROM users WHERE users.id = '390'"
如果您只想删除星号'*' 您可以在您的代码中替换此行:
$star = substr($sql, 1, 2);
与:
$star = str_replace('*',"",$sql);
//this will remove all asterisk
如果您只需要替换第一次出现的“*”,请使用:
$star = preg_replace('/\*/', '', $sql, 1);