gpt4 book ai didi

php - 无法删除字符串中的空格

转载 作者:可可西里 更新时间:2023-11-01 08:29:55 24 4
gpt4 key购买 nike

我的脚本读取 txt 文件,然后将值写入数据库表。有一个价格字段,在 txt 文件价格中,4 位数字值在第一位数字后有空格(2 500 ex.)。我放置了这个函数(str_replace 运行良好并替换了 ',' 但是当我使用它来删除空格时它并没有这样做,最后我放置了 preg_replace 但它也跳过了空格):

$model->price = preg_replace('/\s+/','',str_replace(',', '.', $row_data[3]));

我表中价格字段的数据类型是 varchar,当我使用 int 或 decimal 时,它会跳过空格后的数字(2 070 变为 2、12 015 => 12)。我必须在集成阶段删除这个空格,因为当我对价格字段进行操作时,php 会在空格后跳过数字,我在进一步的操作中会出错。

请问大家有什么问题吗?

UPD 来自@jeroen 的解决方案效果很好,我将价格字段更改为十进制 (10,2) 并将此行用于解析带有价格的字符串:

$model->price = filter_var(str_replace(',', '.', $row_data[3]), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); 

最佳答案

我不会使用正则表达式,而是使用 filter为此:

// replace if necessary
$number = str_replace(',', '.', $row_data[3]);

// filter unwanted characters
$model->price = filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);

并且您应该确保更新数据库中的所有价格,以便您可以切换到数据库本身中的数值。

关于php - 无法删除字符串中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29866223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com