如何在PHP中将字符串分隔为两边并自动删除数字零


How to separate string to two side and auto delete number zero in PHP?

我正在从CSV格式构建导入功能,并将值插入数据库。但当我想更改以下代码格式时,我遇到了一些问题。

我有一些发票代码格式如下代码,但我想分离其他另一种代码格式

IP14010459
DEP14010460
IP14010461
DEP14010462
ISP14010462
ISP14010463
ISP14010464
ISP14010465
ISP14010466
ISP14010466
ISP14010467

我要把代码格式改成

IP1401-459 (Zero has been deleted)
DEP1401-460 (Zero has been deleted)
IP1401-461 (Zero has been deleted)
DEP1401-462 (Zero has been deleted)
ISP1401-462 (Zero has been deleted)
ISP1401-463 (Zero has been deleted)
ISP1401-464 (Zero has been deleted)
ISP1401-465 (Zero has been deleted)
ISP1401-466 (Zero has been deleted)
ISP1401-466 (Zero has been deleted)
ISP1401-467 (Zero has been deleted)

我还删除了代码格式右侧前缀(If have)的数字0我怎么能做这个朋友。

这可以使用substr_replace() 实现

$str = "IP14010461";  //DEP14010462
echo substr_replace($str, '-', -4, 1);

输出:

IP1401-461  //DEP1401-462

$str = "IP14010461";
// $str = "DEP14010462";
echo substr_replace($str, '-', -4, 1) . "  (Zero has been deleted)";

使用对批处理过程有用的文件时:

if (($handle = fopen("1.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);    
        for ($c=0; $c < $num; $c++) {            
echo substr_replace($data[$c], '-', -4, 1) . "  (Zero has been deleted)";
            echo "<br />";  
        }
    }
    fclose($handle);
}

输出:

IP1401-459(零已删除)DEP1401-460(零已删除)IP1401-461(零已删除)DEP1401-462(零已删除)ISP1401-462(零已删除)ISP1401-463(零已删除)ISP1401-464(零已删除)ISP1401-465(零已删除)ISP1401-466(零已删除)ISP1401-466(零已删除)ISP1401-467(零已删除)

如果你有一个名为1.csv的文件,里面有你的信息:

IP14010459
DEP14010460
IP14010461
DEP14010462
ISP14010462
ISP14010463
ISP14010464
ISP14010465
ISP14010466
ISP14010466
ISP14010467

你可以这样做:

<?php
$strings = file('1.csv');
for($i = 0; $i < count($strings); $i++) {
echo substr(trim($strings[$i]), 0, -4) . '-' . substr(trim($strings[$i]), -3) . ' (Zero has been deleted)' . "<br/>'n";
}
?>

带有preg_replace

echo preg_replace("/('D+'d{4})0*([1-9]+'d*)/i","$1-$2'n", "ISP14010462"); 
ISP1401-462

这取所有字母和4位数字,删除0并保留其他数字