如何从PHP中的字符串中删除不需要的字符

时间:2013-12-23 10:45:53

标签: php

当我读取数组时,我得到的值设置为"lat" : -37.8087928,。我只想-37.8087928部分。这样做的正确方法是什么。

我是这样做的:

$value = '"lat" : -37.8087928,';
$ex = explode(':', $value);

$ex2 = explode(',', $ex[1]);

最终resualt $ex2[0]

这是正确的还是正确的方法,谢谢大家

6 个答案:

答案 0 :(得分:1)

$value = '"lat" : -37.8087928,';
$final_value = preg_replace("/[^0-9.\-]/", "", $value);

上面的代码将删除所有不是数字,点或连字符的字符。

答案 1 :(得分:0)

您可以删除字符串中的所有空格

 $stingname=" test manish ";

    str_replace(" ","",$stingname);

    echo $stingname;

结果

testmanish

答案 2 :(得分:0)

这是对象表示法。你可能想尝试

$locations = json_decode($value)

然后您可以像这样访问它:

echo $locations->lat; // prints -37.8087928

如果您不想这样做,您可以这样做:

$locationArray = explode($value, ':'); // returns [0: 'lat', 1: -37.8087928]
echo trim($locationArray[1]); // prints -37.8087928. trim to get rid of whitespace

答案 3 :(得分:0)

您的方法没有问题。但你也可以使用这个更容易理解的东西:

$value = '"lat" : -37.8087928,';
echo $float = filter_var($value, FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION);

希望这对你有帮助!

您可以阅读更多相关信息here

答案 4 :(得分:0)

正确的方法取决于输入字符串的可变性 - "像这样"不是一个充分的解释。

您的解析器足够 - 但没有错误处理,也没有任何处理格式不同的字符串的方法。使用jorge描述的正则表达式更加强大,但可能无法应对某些输入场景。

您提供的输入字符串看起来非常像JSON - 在这种情况下您应该使用JSON解析器 - PHP内置一个非常好的 - 它将简单地拒绝不符合要求的输入。

答案 5 :(得分:0)

人们建议使用正则表达式和爆炸,为什么?这很慢,不需要。如果你有一个固定的字符串,你可以使用一些字符串函数:

$value = '"lat" : -37.8087928,';
$result = trim( substr($value, strpos($value,":")+1) ), " ,");

这可以通过查找该字符串中的:并将其减去直到结束来实现。然后使用修剪删除空格和逗号。如果逗号总是在那里,你可以这样做,并删除修剪:

$result = substr($value, strpos($value,":")+1), -1 );// till -1 from the end