如何使用 php 分隔 excel 中带逗号的全名
How to separate the full name that has comma in excel using php
我有一个项目从 excel 获取名称并将值存储在名字和姓氏中。问题是在 excel 文件中存储了名称(例如 John、Constantine)我如何获取 John 和 Constantine 并将其存储在两个不同的变量中?
if(isset($_POST['excel_btn']))
{
require('import/PHPExcel/PHPExcel.php');
require('import/PHPExcel/PHPExcel/IOFactory.php');
$file=$_FILES['myFile']['tmp_name'];
$obj=PHPExcel_IOFactory::load($file);
foreach($obj->getWorksheetIterator() as $sheet)
{
$getHighestRow=$sheet->getHighestRow();
for($i=1; $i<=$getHighestRow; $i++){
$name=$sheet->getCellByColumnAndRow(0,$i)->getValue();
if($name !=''){
$query = "INSERT INTO users(name) VALUES('$name')";
$query_run=mysqli_query($conn, $query);
}
}
}
这是我到目前为止写的,但是全名存储在变量中 $name
(已更新)
使用explode:
$pieces = explode(",", $name);
echo trim($pieces[0]); // John
echo trim($pieces[1]); // Constantine
或者,作为@Markus Zeller:
list($first, $last) = explode(',', 'John, Constantine')
echo trim($first);
echo trim($last);
您还可以使用以逗号或任何 space 字符分隔的正则表达式。可选标志 PREG_SPLIT_NO_EMPTY 将确保不会返回空匹配项。这个技巧还可以确保修剪。
list($first, $last) = preg_split('/[,\s*]/', 'John, Doe', -1, PREG_SPLIT_NO_EMPTY);
这也适用于像“ John, Doe
”这样的字符串,两者的结果都是
$first = 'John';
$last = 'Doe';
我有一个项目从 excel 获取名称并将值存储在名字和姓氏中。问题是在 excel 文件中存储了名称(例如 John、Constantine)我如何获取 John 和 Constantine 并将其存储在两个不同的变量中?
if(isset($_POST['excel_btn']))
{
require('import/PHPExcel/PHPExcel.php');
require('import/PHPExcel/PHPExcel/IOFactory.php');
$file=$_FILES['myFile']['tmp_name'];
$obj=PHPExcel_IOFactory::load($file);
foreach($obj->getWorksheetIterator() as $sheet)
{
$getHighestRow=$sheet->getHighestRow();
for($i=1; $i<=$getHighestRow; $i++){
$name=$sheet->getCellByColumnAndRow(0,$i)->getValue();
if($name !=''){
$query = "INSERT INTO users(name) VALUES('$name')";
$query_run=mysqli_query($conn, $query);
}
}
}
这是我到目前为止写的,但是全名存储在变量中 $name
(已更新)
使用explode:
$pieces = explode(",", $name);
echo trim($pieces[0]); // John
echo trim($pieces[1]); // Constantine
或者,作为@Markus Zeller:
list($first, $last) = explode(',', 'John, Constantine')
echo trim($first);
echo trim($last);
您还可以使用以逗号或任何 space 字符分隔的正则表达式。可选标志 PREG_SPLIT_NO_EMPTY 将确保不会返回空匹配项。这个技巧还可以确保修剪。
list($first, $last) = preg_split('/[,\s*]/', 'John, Doe', -1, PREG_SPLIT_NO_EMPTY);
这也适用于像“ John, Doe
”这样的字符串,两者的结果都是
$first = 'John';
$last = 'Doe';