Quindi tu devi estrarre la riga, solo con la "p" presente?
https://s26.postimg.org/d3kcyupx5/index.png
Ho capito bene?
Quindi tu devi estrarre la riga, solo con la "p" presente?
https://s26.postimg.org/d3kcyupx5/index.png
Ho capito bene?
esatto e se noti bene...ogni riga delimitata da 2 j una all'inizo ed una alla fine e la riga quasi sempre della stessa lunghezza
Ultima modifica di supersqualo; 08-09-2017 a 18:46
i nomi dei farmaci quali lettere comprendono:
a-z, 0-9, *, / e lo [spazio singolo] o anche altri?
Se sono solo questi:
Codice PHP:<?php
$txt = <<<EOL
” ” “V l ™ d Ÿ
<r – w ” H < < (
2 < (
J J 025300029 G 0NORMIX*AD 12CPR RIV 200MG 00002n 01 J J 015896018 G 0MUSCORIL*IM 6F 4MG 2ML 00001n 03 J < 0028 G 0ULTRALAN DERM*CR IDROFOBA 30G 00001n 01 J Y 8061 G 0MICROSER*30CPR 16MG 00001n 04 J J 5048 G 0VALIUM*OS GTT 20ML 5MG/ML 00001n 01 J J 040627010 G 0FOLIFILL*28CPR 5MG 00001n 01 J J 925633048 V 9PERSONAL TEST PIC 1PZ 00001n 03 J J 042236036 V 0OMEPRAZOLO TEVA*14CPS 10MG 00002n 02 J _ 5022 G 0COLBIOCIN*UNG OFT 5G 00001n 06 J y" 5143 G 0TACHIPIRINA*12CPR EFF 1G 00002n 04 J J 036345027 G 0FOLIDEX*120CPR 400MCG 00001n 01 J J 900472768 G 9ALFA NATURA 10FL MONODOSE 00001n 01 J J 934030913 G 9RUPISOLV 20BUST 00001 P 04 J J 800218493 G 8IGNATIA AMARA 200K GL 00001n 04 J J 005170028 G 0TRAVELGUM*10GOMME MAST 20MG 00001n 03 J J 938857568 G 9PLAKKONTROL BRUSH&CLEAN LARGE 00001n 01 J 7022 G 0BIDIEN*UNG 30G 0,025% 00001n 01 J F 4071 G 0DRONAL*4CPR 70MG 00001n 05 J
EOL;
preg_match_all(
'#([0-9]{4,9}\s+[A-Z]{1}\s+([\*/A-Z0-9 ]+)\s+[0-9]{3,7}n?\s+P\s+([0-9]+))#',
$txt, $match
);
print_r( $match );
Ultima modifica di zacca94; 08-09-2017 a 19:04
Output:Codice PHP:<?php
$txt = <<<EOL
” ” “V l ™ d Ÿ
<r – w ” H < < (
2 < (
J J 025300029 G 0NORMIX*AD 12CPR RIV 200MG 00002n 01 J J 015896018 G 0MUSCORIL*IM 6F 4MG 2ML 00001n 03 J < 0028 G 0ULTRALAN DERM*CR IDROFOBA 30G 00001n 01 J Y 8061 G 0MICROSER*30CPR 16MG 00001n 04 J J 5048 G 0VALIUM*OS GTT 20ML 5MG/ML 00001n 01 J J 040627010 G 0FOLIFILL*28CPR 5MG 00001n 01 J J 925633048 V 9PERSONAL TEST PIC 1PZ 00001n 03 J J 042236036 V 0OMEPRAZOLO TEVA*14CPS 10MG 00002n 02 J _ 5022 G 0COLBIOCIN*UNG OFT 5G 00001n 06 J y" 5143 G 0TACHIPIRINA*12CPR EFF 1G 00002n 04 J J 036345027 G 0FOLIDEX*120CPR 400MCG 00001n 01 J J 900472768 G 9ALFA NATURA 10FL MONODOSE 00001n 01 J J 934030913 G 9RUPISOLV 20BUST 00001 P 04 J J 800218493 G 8IGNATIA AMARA 200K GL 00001n 04 J J 005170028 G 0TRAVELGUM*10GOMME MAST 20MG 00001n 03 J J 938857568 G 9PLAKKONTROL BRUSH&CLEAN LARGE 00001n 01 J 7022 G 0BIDIEN*UNG 30G 0,025% 00001n 01 J F 4071 G 0DRONAL*4CPR 70MG 00001n 05 J
EOL;
$specialChars = preg_quote( '#$%^&*()+=-[]\';,./{}|\":<>?~', '#' );
preg_match_all(
'#([0-9]{4,9}\s+[A-Z]{1}\s+([' . $specialChars . 'A-Z0-9 ]+)\s+[0-9]{3,7}n?\s+P\s+([0-9]+))#',
$txt, $match
);
print_r( $match );
Togli da $specialChars i caratteri che non vengono utilizzati per i nomi dei farmaci.codice:Array ( [0] => Array ( [0] => 934030913 G 9RUPISOLV 20BUST 00001 P 04 ) [1] => Array ( [0] => 934030913 G 9RUPISOLV 20BUST 00001 P 04 ) [2] => Array ( [0] => 9RUPISOLV 20BUST ) [3] => Array ( [0] => 04 ) )
Ultima modifica di zacca94; 08-09-2017 a 19:41
Grazie zacca...per non funziona...se inserisco l'intero file (non solo la parte che ho postato) da errore!
Edit...funziona... (colpa mia)
ma adesso come faccio a suddividere gli elementi? con esplode?
Perdonami ma non capisco nemmeno tutti questi array sono proprio un nabbo![]()
Ultima modifica di supersqualo; 08-09-2017 a 20:01
posta l'output di 20 elementi estratti stampati con print_r
Array ( [0] => Array ( [0] => 934030913 G 9RUPISOLV 20BUST 00001 P 04 [1] => 0055 G 0CIBALGINA DUE FAST*24CPR 200MG 00001 P 01 [2] => 6032 G 0FERRITIN COMPLEX*OS 10FL 8ML 00001 P 01 [3] => 9118 G 0LEDERFOLIN*10CPR 7,5MG 00002 P 03 [4] => 019655051 G 0BENTELAN*10CPR EFF 1MG 00024 P 04 [5] => 3041 G 0AXIL*OS 10FL 400MG 7ML 00001 P 04 [6] => 024001012 G 0URBASON*10CPR 4MG 00002 P 04 [7] => 931636765 G 9ECN 20CPS GASTROPROTETTE 00001 P 01 [8] => 3052 G 0PRISMA*50CPS 24MG 00001 P 05 [9] => 028978031 G 0BACTROBAN*CREMA 15G 2% 00001 P 03 [10] => 970406613 G 9POLICALM SHOWER GEL 300ML CE 00001 P 04 [11] => 6011 G 0DIIDERGOT*OS GTT 15ML 0,2% 00001 P 05 [12] => 938832096 G 9ALFA 4 DET DELICATO PH ACIDO 00001 P 03 [13] => 100199013 G 1TRESADERM*SOLUZ DERM FL 15ML 00001 P 03 [14] => 923302487 G 1OTOACT 100ML 00001 P 03 ) [1] => Array ( [0] => 934030913 G 9RUPISOLV 20BUST 00001 P 04 [1] => 0055 G 0CIBALGINA DUE FAST*24CPR 200MG 00001 P 01 [2] => 6032 G 0FERRITIN COMPLEX*OS 10FL 8ML 00001 P 01 [3] => 9118 G 0LEDERFOLIN*10CPR 7,5MG 00002 P 03 [4] => 019655051 G 0BENTELAN*10CPR EFF 1MG 00024 P 04 [5] => 3041 G 0AXIL*OS 10FL 400MG 7ML 00001 P 04 [6] => 024001012 G 0URBASON*10CPR 4MG 00002 P 04 [7] => 931636765 G 9ECN 20CPS GASTROPROTETTE 00001 P 01 [8] => 3052 G 0PRISMA*50CPS 24MG 00001 P 05 [9] => 028978031 G 0BACTROBAN*CREMA 15G 2% 00001 P 03 [10] => 970406613 G 9POLICALM SHOWER GEL 300ML CE 00001 P 04 [11] => 6011 G 0DIIDERGOT*OS GTT 15ML 0,2% 00001 P 05 [12] => 938832096 G 9ALFA 4 DET DELICATO PH ACIDO 00001 P 03 [13] => 100199013 G 1TRESADERM*SOLUZ DERM FL 15ML 00001 P 03 [14] => 923302487 G 1OTOACT 100ML 00001 P 03 ) [2] => Array ( [0] => 9RUPISOLV 20BUST [1] => 0CIBALGINA DUE FAST*24CPR 200MG [2] => 0FERRITIN COMPLEX*OS 10FL 8ML [3] => 0LEDERFOLIN*10CPR 7,5MG [4] => 0BENTELAN*10CPR EFF 1MG [5] => 0AXIL*OS 10FL 400MG 7ML [6] => 0URBASON*10CPR 4MG [7] => 9ECN 20CPS GASTROPROTETTE [8] => 0PRISMA*50CPS 24MG [9] => 0BACTROBAN*CREMA 15G 2% [10] => 9POLICALM SHOWER GEL 300ML CE [11] => 0DIIDERGOT*OS GTT 15ML 0,2% [12] => 9ALFA 4 DET DELICATO PH ACIDO [13] => 1TRESADERM*SOLUZ DERM FL 15ML [14] => 1OTOACT 100ML ) [3] => Array ( [0] => 04 [1] => 01 [2] => 01 [3] => 03 [4] => 04 [5] => 04 [6] => 04 [7] => 01 [8] => 05 [9] => 03 [10] => 04 [11] => 05 [12] => 03 [13] => 03 [14] => 03 ) )
$match[1][ x ]
contiene i nomi delle dei prodotti
$match[2][ x ]
contiene i terminali dei prodotti
cicli l'array da 0 a N-elementi e fai una query (o pi query) nel quale inserisci:
INSERT INTO tua-tabella ( nome, terminale ) VALUES ( '$match[ 1 ][ $idCiclato ]', '$match[ 2 ][ $idCiclato ]' )
Zacca possiamo parlarne da qualche altra parte pi velocemente?solo tu puoi aiutarmi...forse in questo modo non risolver...
Praticamente non se ricordi il form di ricerca (credo di si)... beh la ricerca era appunto per questi prodotti prenotati... Solo ieri mi hanno "indirizzato" sul dove poter prendere i prodotti aggiunti all'ordine banco del gestionale...
Adesso ti spiego meglio:
-Quando un prodotto viene prenotato nel gestionale il file in questione che chiameremo ORDINEBANCO viene modificato.
-All'interno del gestionale (tramite click) verr aperta la pagina contenente il prodotto/prodotti appena prenotati che dovranno essere quindi aggiornati al click del dipendente
-Il dipendente inserir di fianco al prodotto/prodotti prenotati svariati dati (nome cognome numeroditel note e qualsiasi altra cosa)
E qui finisce
Ora che ci penso, una cosa che ancora nn ho controllato come si comporta il file nel caso di una doppia prenotazione dello stesso prodotto. Forse proprio quel codice a 5 cifre...
Secondo te la soluzione migliore questa che ho in mente? Non ti chiedo di completarmi la parte mancante (hai gi fatto tutto e pi del dovuto) ma sono sulla retta via? Graziesei il numero 1
Ultima modifica di supersqualo; 08-09-2017 a 21:18