Bonjour,

Je rencontre un problème avec la fonction preg_replace et l'utilisation d'une autre fonction pour traiter le résultat.

En fait, dans mon texte, j'ai ca :
bla bla bla ... <%(date:000000)%> bla bla bla
(où 000000 est un timestamp unix).

Je tente alors de le convertir en date lisible avec la fonction Strftime();. Cependant, le résultat est une chaîne de caractère, donc la fonction me renvoie une erreur. Or, lorsque je fais appel à intval(); pour convertir le résultat en entier, il me retourne 0.

Comme il est précisé dans le manuel PHP qu'il est possible que la valeur retourne 0, je tente une fonction externe pour verifier si c'est bien le cas.

Et voici les résultats :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<?php
function test($string) {
    return $string;
}
?>
=> Cette fonction me retourne bien le bon nombre mais toujours sous forme de chaîne (normal, aucun traitement).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<?php
function test($string) {
    return (int) $string;
}
?>
=> Pareil que intval(); => ca me retourne 0

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<?php
 function test($string) {
     return $string + 0;
 }
 ?>
=> Cette fonction me retourne 0.

Dès lors, j'ai voulu vérifier "string" et il se trouve qu'il se passe des choses assez bizarre. En effet, lorsque dans ma fonction qui me retourne la bonne valeur de string (donc le timestamp de 10 caractères), je fais un strlen(string), il me dit que la chaine ne fait que 2 caractères.

Autrement dit, je ne comprends plus rien. Pouvez-vous m'aider ? Merci d'avance.

Amicalement,
Nico.