
Originariamente inviata da
zacca94
Risolvibile con una semplice espressione regolare:
Codice PHP:
<?php
$txt = <<<EOL
J CODICE9CIFRE LETTERA NOME PRODOTTO 00002n N.TERMINALE J
XXXXXXXXX V 0NOME 00001n 03 J
4F 0017 G 0NOME 00002n 03 J
<Î 0028 G 0NOME 00001n 02 J
YÀ 8061 G 0NOME 00001n 04 J J
%ô 6011 G 0NOME 00001 P 05 J
5048 G 0NOME 00001n 01 J
9072 G 0NOME 00002n 05 J
J XXXXXXXXX V 9NOME 00001n 05 J
J XXXXXXXXX V 9STRINGADAESTRARRE 00001 P 02 J
_Ø 5022 G 0NOME 00001n 06 J
y" 5143 G 0NOME 00002n 04 J
J XXXXXXXXX V 0NOME 00003n 03 J
J XXXXXXXXX V 0NOME 00002n 03 J
J XXXXXXXXX V 0NOME 00001n 05 J
J XXXXXXXXX V 0NOME 00002n 04 J
J XXXXXXXXX V 9STRINGADAESTRARRE 00001 P 04 J
EOL;
foreach ( explode( "\n", $txt ) as $row ) {
$row = trim( $row );
preg_match_all( '#V\s+(.*?)\s+[0-9]{3,7}\sP#is', $row, $m );
if ( isset( $m[ 1 ][ 0 ] ) ) {
print $m[ 1 ][ 0 ] . "<br>";
}
}
Si poteva fare anche senza ciclo con una sola espressione regolare, ma non ho tempo di formularne una più complessa...