Découper une chaîne avec un tableau de longueur en param - PHP - Programmation
Marsh Posté le 17-09-2010 à 16:54:40
Je m'auto-réponds, ça fera un peu de lecture à ceux qui lisent sans poster
=> sscanf, en bidouillant un peu, ça fonctionne impecc !
Marsh Posté le 17-09-2010 à 16:57:26
ça serait pas mieux au lieu de
- lire une ligne puis la decouper
de faire :
- lire la ligne en la découpant
je sais pas comment tu ouvres ton ficher mais ça peut être très important aussi(eviter d'apeler des indexs, faire des seeks à gogo etc...). Sur de si gros fichiers je prefere lire les datas directement :
$res[i]=fread(monfich,$tab[i])
ou tu crées un type et
$montype=fread(monfich,sizeof($montype))
Marsh Posté le 17-09-2010 à 17:12:27
Pour la lecture du fichier, fopen + fgets.
La lecture en elle-même est relativement rapide. C'est vraiment le découpage de la ligne à coup de substr qui prend du temps
Par exemple, une ligne d'un certain type pour être découpée en 170 parties...
Ca se gère comment les fins de ligne avec fread aussi ?
Merci d'avoir répondu ^^
Marsh Posté le 17-09-2010 à 10:33:04
je voudrais découper une chaîne de caractères en fonction d'un tableau qui contient la longueur de chaque sous-chaîne.
Exemple :
$str = "azertyuiopqsdfghjklm";
$tab = array(3,4,5,...);
Et une fonction qui me retournerait :
$res[0] = "aze";
$res[1] = "rtyu";
$res[2] = "iopqs";
... etc...
Pour l'instant, je tourne avec des substr et un tableau en conf mais c'est extrêmement lent.
Je dois découper chaque ligne d'un fichier en fonction de l'octet de départ et d'un longueur... Pas de caractère de séparation, tout est collé.
Problème majeur : le fichier fait 3.500.000 ligne pour 1.4Go et les serveurs sont encore en PHP4
Y'a pas une fonction qui existe nativement, même en php5
Ou une astuce pour optimiser ?
Merci
---------------
Trouve ton apprentissage - [Feed-Back]