用php提取数据
我这里有一条短信 TK 8600xxxx8888 | GD:-250000VND 28/01/21 18:41 | SD:50035VND | ND:Ck-马乔迪奇/跟踪521298-5221000086554 我怎样才能把所有的数据放进数据库? 例: TK=8600xxxx888;GD=-250000;SD=50035;ND=Ck;跟踪=521298,Cus=5221000086554用php提取数据,php,mysql,Php,Mysql,我这里有一条短信 TK 8600xxxx8888 | GD:-250000VND 28/01/21 18:41 | SD:50035VND | ND:Ck-马乔迪奇/跟踪521298-5221000086554 我怎样才能把所有的数据放进数据库? 例: TK=8600xxxx888;GD=-250000;SD=50035;ND=Ck;跟踪=521298,Cus=5221000086554 这段代码可能会帮助您实现这一目标: <?php $txt = "TK: 8600xxxx88
这段代码可能会帮助您实现这一目标:
<?php
$txt = "TK: 8600xxxx8888|GD: -250,000VND 28/01/21 18:41|SD:50,035VND|ND: Ck - Ma giao dich/ Trace 521298 -52210000086554";
$arr = [];
foreach(explode("|", $txt) as $t){
$var = explode(":", $t);
$arr[$var[0]] = $var[1];
}
foreach($arr as $a){
echo $a . "<br>";
}
?>
请更好地解释您的问题以及您试图解决的问题。您能告诉我们提取我们在预期输出中看到的内容的规则是什么吗?规则是文本始终保持不变,数字也会更改。这是错误的。它将在第7行8600xxxx8888-250000VND上的C:\xampp\htdocs\Other_Projects\Testing\index.php中返回:注意:未定义的偏移量:1Ck@JohnDoe在问题评论中,他/她说“规则是文本总是保持不变,数字也会改变”,如果文本有相同的模式,上面的代码实际上是有效的。它甚至对当前字符串也不起作用。@JohnDoe你的模式是这样的吗?“TK:8600xxxx8888 | GD:-250000VND 28/01/21 18:41 | SD:50035VND | ND:Ck-Ma giao dich/Trace 521298-5221000086554”它运行,但不返回完整数据我想:(
<?php
$string = "TK 8600xxxx8888|GD: -250,000VND 28/01/21 18:41|SD:50,035VND|ND: Ck - Ma giao dich/ Trace 521298 -52210000086554";
$string_array = explode("|", $string);
$TX = substr(strrchr($string_array[0], " "), 1);
$GD = substr($string_array[1], 0, strrpos( $string_array[1], ' ') );
$GD = substr($GD, 0, strrpos( $GD, ' ') );
$GD = str_replace('VND', '', $GD);
$GD = str_replace(',', '', $GD);
$GD = str_replace('GD: ', '', $GD);
$SD = str_replace('VND', '', $string_array[2]);
$SD = str_replace(',', '', $SD);
$SD = str_replace('SD:', '', $SD);
$ND = $string_array[3];
$ND = str_replace('ND:', '', $ND);
$ND = substr($ND, 0, strrpos( $ND, ' - ') );
$ND = str_replace(' ', '', $ND);
$Trace = $string_array[3];
$Trace = substr(strrchr($Trace, "/"), 1);
$Trace = $Cus = str_replace(' Trace ', '', $Trace);
$Trace = substr($Trace, 0, strrpos( $Trace, ' -') );
$Cus = substr(strrchr($Cus, " "), 1);
echo $TX . "<br />" . $GD . "<br />" . $SD . "<br />" . $ND . "<br />" . $Trace . "<br />" . $Cus;
?>