Extraction de chaine
Résolu/Fermé
A voir également:
- Extraction de chaine
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
- Nouvelle chaîne tnt gratuite 2024 - Guide
- Chaine x iptv - Forum TNT / Satellite / Réception
- Recherche chaine tv techwood - Forum TNT / Satellite / Réception
3 réponses
Alors là je reste pantois. Je n'arrive pas à comprendre cette question, mais rassure toi ce n'est pas la première fois, et, heureusement, je ne connais pas tout ;-)
D'autre part, comme beaucoup trop souvent, on ne connait rien de l'environnement.
D'une manière générale, lorsque l'on pose un problème, il faut se mettre à la place de celui qui est susceptible de répondre et, par conséquent, lui donner les informations nécessaires - ne serait ce que pour l'inciter - à l'élaboration de la réponse; sinon on n'obtient rien.
Bonne soirée.
D'autre part, comme beaucoup trop souvent, on ne connait rien de l'environnement.
D'une manière générale, lorsque l'on pose un problème, il faut se mettre à la place de celui qui est susceptible de répondre et, par conséquent, lui donner les informations nécessaires - ne serait ce que pour l'inciter - à l'élaboration de la réponse; sinon on n'obtient rien.
Bonne soirée.
En fait, j'aimerais un script php permettant d'isoler certaine partie d'une chaine.
Un exemple de la chaine est donnée dans le premier post.
Le résultat finale serait sous cette forme :
$cargo_x est un tableau contenant toutes les valeurs associée : "new Ship('Cargo X',3)" -> ici c'est "3"
pour les autres nom, je trouverais par rapport à la base qui me sera donnée ici, si cela est possible.
Autres informations : la chaine est récupérée en POST, et seulement les information que je demande sont à récupérer.
Voilà, merci.
PS: Merci pour cette première réponse rapide :)
Un exemple de la chaine est donnée dans le premier post.
Le résultat finale serait sous cette forme :
$cargo_x est un tableau contenant toutes les valeurs associée : "new Ship('Cargo X',3)" -> ici c'est "3"
pour les autres nom, je trouverais par rapport à la base qui me sera donnée ici, si cela est possible.
Autres informations : la chaine est récupérée en POST, et seulement les information que je demande sont à récupérer.
Voilà, merci.
PS: Merci pour cette première réponse rapide :)
Re-Salut ,
Donc, après quelques heures en plus de codages ... J'ai enfin trouvé une solution :)
En voici le code, pour ceux qui chercheraient un script similaire dans le futur.
//Rajoutez ça au début du script php.
function instr($debut,$fin,$str,$trouve,$minus) {
if ($minus==1) {$str=strtolower($str);$trouve=strtolower($trouve);} //Si $minus=1, ne différencie pas les majuscules des minuscules
for ($l=$debut;$l<$fin;$l++) { //Faire une boucle du $debut jusqu'a la $fin
if (substr($str,$l,strlen($trouve))==$trouve) //Si $trouve est trouvé dans $str,
return $l+1; //Retourner a la fonction instr
end; //Quitter la fonction
}
return 0; //Sinon, retourner 0 pour dire que c'est pas trouvé
}
function ExtractChamp($chaine,$entier,$sep)
{
if($entier > 0)
{
$res=strtok($chaine,$sep); //découpe la chaine en segment avec le séparateur $sep.
if($res!="") //si la chaîne comporte au moins une fois le séparateur alors
{
for($i=1;$i<$entier;$i++)
{
$res=strtok($sep);//passe au segment suivant
}
}
}
else
{
$res=false;
}
return($res);//retourne le résultat
}
Voici deux fonctions pour chercher et extraire, ensuite, il suffit juste de boucler jusque la fin du texte.
//$chaine contient la chaine ou les infos sont à extraire.
$chaine2 = $chaine;
$chaine = stripslashes($chaine2);
//Cas de Cargo X
$cargo_x=0;
$chaine2 = $chaine;
do{
$nb = instr(0,strlen($chaine2),$chaine2,"Cargo X",0);
$chaine2 = substr($chaine2,$nb+8,strlen($chaine2));
$cargo_x+=ExtractChamp($chaine2,1,')');
}while($nb!=0);
//Cas de Cargo I
$cargo_i=0;
$chaine2 = $chaine;
do{
$nb = instr(0,strlen($chaine2),$chaine2,"Cargo I",0);
$chaine2 = substr($chaine2,$nb+8,strlen($chaine2));
$cargo_i+=ExtractChamp($chaine2,1,')');
}while($nb!=0);
Et voici donc deux exemple de boucle. Bien sur, on peut en faire autant que l'on veux à la suite.
Voili, voilou.
Merci pour ceux qui ont d'ores et déjà commencé à chercher pour moi.
A bientôt Peut-être.
Donc, après quelques heures en plus de codages ... J'ai enfin trouvé une solution :)
En voici le code, pour ceux qui chercheraient un script similaire dans le futur.
//Rajoutez ça au début du script php.
function instr($debut,$fin,$str,$trouve,$minus) {
if ($minus==1) {$str=strtolower($str);$trouve=strtolower($trouve);} //Si $minus=1, ne différencie pas les majuscules des minuscules
for ($l=$debut;$l<$fin;$l++) { //Faire une boucle du $debut jusqu'a la $fin
if (substr($str,$l,strlen($trouve))==$trouve) //Si $trouve est trouvé dans $str,
return $l+1; //Retourner a la fonction instr
end; //Quitter la fonction
}
return 0; //Sinon, retourner 0 pour dire que c'est pas trouvé
}
function ExtractChamp($chaine,$entier,$sep)
{
if($entier > 0)
{
$res=strtok($chaine,$sep); //découpe la chaine en segment avec le séparateur $sep.
if($res!="") //si la chaîne comporte au moins une fois le séparateur alors
{
for($i=1;$i<$entier;$i++)
{
$res=strtok($sep);//passe au segment suivant
}
}
}
else
{
$res=false;
}
return($res);//retourne le résultat
}
Voici deux fonctions pour chercher et extraire, ensuite, il suffit juste de boucler jusque la fin du texte.
//$chaine contient la chaine ou les infos sont à extraire.
$chaine2 = $chaine;
$chaine = stripslashes($chaine2);
//Cas de Cargo X
$cargo_x=0;
$chaine2 = $chaine;
do{
$nb = instr(0,strlen($chaine2),$chaine2,"Cargo X",0);
$chaine2 = substr($chaine2,$nb+8,strlen($chaine2));
$cargo_x+=ExtractChamp($chaine2,1,')');
}while($nb!=0);
//Cas de Cargo I
$cargo_i=0;
$chaine2 = $chaine;
do{
$nb = instr(0,strlen($chaine2),$chaine2,"Cargo I",0);
$chaine2 = substr($chaine2,$nb+8,strlen($chaine2));
$cargo_i+=ExtractChamp($chaine2,1,')');
}while($nb!=0);
Et voici donc deux exemple de boucle. Bien sur, on peut en faire autant que l'on veux à la suite.
Voili, voilou.
Merci pour ceux qui ont d'ores et déjà commencé à chercher pour moi.
A bientôt Peut-être.
Encore moi xD
Je reviens pour poster une version beaucoup plus légère, efficace et rapide ^^
voici le code :
$chaine = stripslashes($_POST['infos2']);
//Cas de Cargo X
$cargo_x=0;
preg_match_all("#Cargo X\',[0-9]+#s", $chaine, $tabl, PREG_SET_ORDER);
foreach($tabl as $t){
$tab=explode('\',', $t[0]);
$cargo_x+=$tab[1];
}
et donc $cargo_x contient la valeur voulue :)
Voili, voilou :)
Je reviens pour poster une version beaucoup plus légère, efficace et rapide ^^
voici le code :
$chaine = stripslashes($_POST['infos2']);
//Cas de Cargo X
$cargo_x=0;
preg_match_all("#Cargo X\',[0-9]+#s", $chaine, $tabl, PREG_SET_ORDER);
foreach($tabl as $t){
$tab=explode('\',', $t[0]);
$cargo_x+=$tab[1];
}
et donc $cargo_x contient la valeur voulue :)
Voili, voilou :)