PHP如何检查第一个字符是否为£,如果是,则将其删除

时间:2011-10-31 16:34:14

标签: php

我究竟如何检查$value中的第一个字符是£,然后将其删除?

更好的方法是检查它是否不是数字,然后将其删除。

我目前的代码:

echo '<dl style="margin-bottom: 1em;">';

foreach ($row as $key => $value)
{
    echo "<dt>$key</dt><dd>$value</dd>";
}

echo '</dl>';

8 个答案:

答案 0 :(得分:24)

有些人建议修剪 - 这对于大多数用途来说可能很好,但也可能会删除尾随的'£'。

如果您真的只想从字符串的开头删除“£”,则可能需要查看使用ltrim

e.g。

$value = ltrim($value, '£');

(我知道这个问题的意图是从字符串中剥离非数字,但我发现谷歌只是从一开始就删除一个字符,所以毫无疑问其他人也会这样。这应该有助于他们出)

答案 1 :(得分:13)

你知道有这个功能吗? http://php.net/manual/en/function.str-replace.php

str_replace('£', '', $value);

或当然

ltrim($value, '£')

如果你只想摆脱第一个角色

另外:http://php.net/manual/en/function.is-numeric.php

答案 2 :(得分:10)

您可以使用trim()

$value = trim($value, "£");

在您的代码中,您可以:

    foreach($row as $key => $value){

       echo "<dt>$key</dt><dd>".trim($value, "£")."</dd>" ;

    }

答案 3 :(得分:9)

你可以这样做:

if (substr($value,0,1)=="£") $value = substr($value,1);

if ($value[0]=="£") $value = substr($value,1);

或(通过这种方式检查字符(从值减去)是否为数字)..

if (!is_numeric(substr($value,0,1))) $value = substr($value,1);

答案 4 :(得分:3)

您可以减去第一个字符并对其执行is_int()检查,如下所示:

$firstChar = substr($yourString, 0, 1);
if(!is_int($firstChar)) {
    // Not an integer, strip the first character altogether
    $newString = substr($yourString, 1);
}

然后,$ newString将保留内容,不包含第一个字符(如果不是整数)。

答案 5 :(得分:2)

$value = preg_replace('/^\\D*/', '', $value);

这将删除$value

开头的所有非数字

答案 6 :(得分:1)

if ($values[0] == '£') { then
   $values = substr($values, 1); // grab char 1 onwards, removing char 0/£
}

这使用“将字符串作为数组”快捷方式表示法,并归结为

if (substr($values, 0, 1) == '£') {

请注意,这将在多字节字符集上失败,您必须使用mb_substr()代替,这是多字节感知版本。

答案 7 :(得分:0)

这可能对将来的访问者有用。

问题是要删除第一个字符(如果它是“£”)。

当然可以是任何字符,所以建议ltrim的问题在于它将删除所有个连续字符,而不仅仅是第一个,例如

ltrim('££10', '£');

将输出10而不是£10。在这种情况下,这可能是可以接受的,但并非在每种情况下都可以接受,因为我们只想要第一个字符。

preg_replace('/^'.$char.'/', '', $input);

会这样做。 $char是您要检查的字符(在这种情况下为'£')。

正则表达式/^£/将查找完全固定在字符串开头的£实例。