如何在变量中输出字符串,删除使用substr函数找到的第一个字符

时间:2018-07-25 13:36:40

标签: php substr

嗨,我有一个名为$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等。

2 个答案:

答案 0 :(得分:1)

要删除任何前导字符,可以使用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'"

答案 1 :(得分:0)

如果只想删除星号“ *” 您可以在代码中替换以下行:

$star = substr($sql, 1, 2);

具有:

$star = str_replace('*',"",$sql);
//this will remove all asterisk

如果只需要替换首次出现的'*',请使用:

$star = preg_replace('/\*/', '', $sql, 1);