Substr et explode

Bonjour, tout le monde, je veux utiliser les deux fonctions substr() et explode() pour afficher une partie d’un text dans une page web, mon code :

<?php

$code1 = "12133639";
$datas = "";
$idp = 31146;
$idd = 50758;
$ident=$idp.";".@$ids.";".$idd;
$codes=$code1;
$get_c = @file("http://script.starpass.fr/check_php.php?ident=$ident&codes=$codes&DATAS=$datas");
$exp = explode("|",$get_c[0]);
print_r ($exp);
echo '<br><br><br>';
// Séléction du maximum de caractères
$exp = substr($exp, 0, 4);
// Récupération de la position du dernier espace (afin déviter de tronquer un mot)
$position_espace = strrpos($exp, "t");    
$exp = substr($exp, 0, $position_espace);    
if($exp == "OUI"){
echo "code incorrecte";
}
else {
echo "code correcte";
}

?>
 

l’erreur que je reçoie :

Warning: substr() expects parameter 1 to be string, array given in D:\wamp\www\test\test.php on line 14

Merci

si ton explode() fonctionne correctement, il te retourne un tableau de valeurs $exp[0], $exp[1], …
et c’est à l’une de ces valeurs que tu vas appliquer ton substring, pas au tableau qui la contient.

EDIT : Problème résolue, merci gcc, le problème comme tu as dis qu’il fait appliquer substr sur l’une des valeurs pas au tableau, voici le beau code pour ceux qui ont eu le meme problème :

<?php

$code1 = "12133639";
$datas = "";
$idp = 31146;
$idd = 50758;
$ident=$idp.";".@$ids.";".$idd;
$codes=$code1;
$get_c = @file("http://script.starpass.fr/check_php.php?ident=$ident&codes=$codes&DATAS=$datas");
$exp = explode("|",$get_c[0]);
[b][u]   * // MODIFICATION N°1[/u][/b]
$var = print_r ($exp);
echo '<br><br><br>';
[b][u]   * // LES AUTRES MODIFICATIONS (ON REMPLACE $exp PAR $var)[/u][/b]
$var = substr($var, 16, 18);
// Récupération de la position du dernier espace (afin déviter de tronquer un mot)
$position_espace = strrpos($var, "o");    
$var = substr($var, 0, $position_espace);    
echo $var;
if($var == "OUI"){
echo "code incorrecte";
}
else {
echo "code correcte";
}

?>

Edité le 10/12/2011 à 16:56