Détecter fin de ligne dans une chaine de caractères [Résolu]

Messages postés
356
Date d'inscription
lundi 26 juillet 2004
Dernière intervention
26 juin 2012
- 28 juin 2008 à 14:32 - Dernière réponse :
Messages postés
356
Date d'inscription
lundi 26 juillet 2004
Dernière intervention
26 juin 2012
- 29 juin 2008 à 02:53
Bonjour,
J'ai une chaine de caractères sous cette forme là:

"058493748903
048493
056847264982736491
..."

C'est toujours x chiffres par ligne ou x est un multiple de 6, mais comment faire pour séparer tous les 6 caractères de la chaine
en remarquant les retours lignes. voilà le code que j'ai écrit, mais qui ne marche pas:

$contenu="";
$longueur=6;

for($j=0;$j<strlen($contenu_crypte);$j+=$longueur) // $j + 6 à chaque boucle jusqu'à la fin de la chaine
{
$crypte=substr($contenu_crypte,$j,$longueur); //coupe la chaine tous les 6 caractères
$contenu.=algorithme($crypte);

    if(substr($contenu_crypte,$j+$longueur,2)=="\n") // Ligne qui ne marche pas: détecte le /n et passe à la ligne suivante
    {
    $contenu.="\n";
    $j+=2;
    }
}
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Dernière intervention
5 juillet 2009
- 28 juin 2008 à 14:44
3
Merci
if(substr($contenu_crypte,$j+$longueur,2)=="\n") // Ligne qui ne marche pas: détecte le /n et passe à la ligne suivante
    {
    $contenu.="\n";
    $j+=2;
    }

pourquoi $j+=2; ?

'\n' c'est 1 seul caractere.

Merci Bling 182 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de Bling 182
Meilleure réponse
Messages postés
1982
Date d'inscription
dimanche 20 février 2005
Dernière intervention
24 septembre 2012
- 28 juin 2008 à 14:48
3
Merci
Salut,

je ne comprends pas exactement ce que tu veux faire et il y aurait d'autres façons de procéder, mais essaie avec

if(substr($contenu_crypte,$j+$longueur,1)=="\n")

car un retour à la ligne vaut 1 caractère, même s'il est représenté par \n qui lui en vaut 2.
à+

Merci Evangun 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de Evangun
Meilleure réponse
Messages postés
356
Date d'inscription
lundi 26 juillet 2004
Dernière intervention
26 juin 2012
- 29 juin 2008 à 02:53
3
Merci
J'ai trouvé. Suffisait de faire \r à la place de \n dans mon cas.
Merci à plus

Merci zut69 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de zut69
Messages postés
356
Date d'inscription
lundi 26 juillet 2004
Dernière intervention
26 juin 2012
- 28 juin 2008 à 14:57
0
Merci
Merci, c'est ok
Commenter la réponse de zut69
Messages postés
356
Date d'inscription
lundi 26 juillet 2004
Dernière intervention
26 juin 2012
- 28 juin 2008 à 15:09
0
Merci
En fait, y a encore un petit souci.
Je croyais que ma fonction algo retournait qqch de bizarre, mais le souci est dans ce code.

Regarde ce code:

$contenu="";
$longueur=6;

for($j=0;$j<strlen($contenu_crypte);$j+=$longueur)
{
$crypte=substr($contenu_crypte,$j,$longueur); //coupe la chaine tous les 6 caractères

$contenu.=".".$crypte."."; // à la place de ma fonction je rajoute des pts qui entourent mes 6 caractères

    if(substr($contenu_crypte,$j+$longueur,1)=="\n")
    {
    $contenu.="\n";
    $j++;
    }
}

Voila ce que j'ai soumis:

070583231604

162968214814114904

096752031574178309217549117407124618025017223916184973

et ce que j'ai en retour:
.070583..231604..
1629..682148..141149..04
09..675203..157417..830921..754911..740712..461802..501722..391618..4973.

Alors qu'il faudrait que j'ai:

.070583..231604.

.162968..214814..114904.

.096752..031574..178309..217549..117407..124618..025017..223916..184973.

Le souci vient à cause des retours lignes, regarde le début de la deuxième ligne il n'y a que 4 caractères à la place de 6 et le point est à la ligne précédente!
Commenter la réponse de zut69

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.