エクセル、csv形式のファイルを読み込むシステムを作っています。また、国コードや都市コードなどの列があり、国には値が 1 つしかなく、都市は次のようにカンマで区切ることができます
国コード CityCode
230 91、92、01-03、1-3
私のデータベースにはこのような行がたくさんあります。そして、私の最終的な出力は
最終コード CountryCode 都市コード
23091 230 91
23092 230 92
23001 230 01
23002 230 02
23003 230 03
2301 230 1
2302 230 2
2303 230 3
そして、私は上記のような正しい出力を得ています。アップロードされたファイルをサーバー上のディレクトリに移動します。
http://phpexcel.codeplex.com/にあるライブラリを使用しています
この関数を使用して、01-03 や 1-3 などのコードの範囲を取得しています。次のとおりです。
function getRangeOfCodes($mystring)
{
$findme = '-';
$pos = strpos($mystring, $findme);
if($pos === false)
{
$length = strlen($mystring);
$range = range(preg_replace("/[^0-9]+/", "",$mystring),preg_replace("/[^0-9]+/", "",$mystring));
}
else
{
$ct = explode("-",$mystring);
$length = strlen($ct[0]);
$range = range(preg_replace("/[^0-9]+/", "",$ct[0]), preg_replace("/[^0-9]+/", "",$ct[1]));
}
$result['range'] = $range;
$result['length'] = $length;
return $result;
}
誤ってファイルに変更を加えていて、コードをトリミングするのを忘れていました。スペースを使用して都市コードが次のように読み取られました。
最終コード CountryCode 都市コード
23091 230 91
230092 230 092
230001 230 001
230002 230 002
230003 230 003
23001 230 01
23002 230 02
23003 230 03
これらのコードをデータベースからダウンロードしているときに、パスを指定してディレクトリにアップロードされたシートと比較し、都市コードが国コードに対応する都市コードと一致しない場合、私はそのためのエラーを表示できます。
間違った、または実行不可能な質問をしている可能性があります。しかし、私は自分の出力について確認したいと思います。これが可能であれば、誰でも私を助けることができますか?それを行うための標準的な方法は何ですか?