如何在变量中输出字符串,删除使用 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);