我正在从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并保留其他数字