固定位置(セパレータなし)にデータを含むファイルがあります。 exempleため固定位置の文字列でデータを復元する
:それは仕事の罰金だ
$code = (int) substr($string, 0, 2);
$ref = substr($string, 2, 8);
$name = substr($string, 10, 8);
$price = (double) substr($string, 18, 6);
:
code = '04' (integer with 2 characters)
ref = '12345678' (string with 8 characters)
name = 'Mr foo ' (string with 8 characters)
price = ' 25.2' (double with 6 characters)
と
$string = '0412345678Mr foo 25.2';
私はそれを行うことができます。
これを行う方法が他にあるかどうかを知りたいと思います。
list($code, $ref, $name, $price) = sscanf($string, "%2d%8s%8s%6s");
しかし、それは動作しません:
は私がすることをしてみてください。
スペースを_
のような別の文字に置き換えると、それは動作しますが、データを変更したくありません。
別のアイデアですか?正規表現?
_Rule 10::与えることができる それがAINT破った場合は_には、それを修正いけません! – RiggsFolly
あなたは言及したように正規表現を使用することでそれを行うことができます。 ([0-9] {2})([a-zA-Z] {8})([0-9。] {6}) 'https://(' regex101.com/r/2bS8af/1 – kaldoran
@kaldoran:私はそれを試みますが、結果を変数に入れる方法がわかりません – doydoy44