code php qui ne fonctionne pas toutjours

gaston gaston
1 617 contributions
Membre depuis le 01/03/2001
Envoyé le 06/01/2023 à 17:04


Bonjour,

ayant une centaines de pages html de présentation différentes que je souhaitais transformer toutes sur le même modèle sans avoir besoin de les modifier. Je me suis donc fait le raisonnement qu'il fallait extraire la partie qui m'intéresse pour l'inclure dans une autre page.
Je me suis donc fait ce code php, afin d'enlever de chaque page html ce qui ne me sert pas et pourvoir inclure ce qui reste dans ma page php modèle

<?php
//je vais chercher dans ma base de données le nom de la page dans la colonne myrweb (j'ai fait préalable une requête à partir d'une variable get)
$monfichier= $data['myrweb'];
$chaine=file_get_contents($monfichier);

//etape 1:j'enlève tout ce qu'il y a, avant la div qui m'intéresse
$poscar = strpos($chaine, '<div class="myrweb'); // position de la div
$content1 = substr($chaine, $poscar); //supprime les caractère avant la div

//etape 2, j'enlève ce qu'il y a après cette div
$balise = '</div>';
$pos1 = strpos($content1, $balise); //position de la chaine </div>
$nb1 = strlen($balise); // nb de caractères de la balise
$nbDiv = $pos1 + $nb1; // nb de caractères de toute la div
$nbTout = strlen($content1); //nb caracteres de l'ensemble

$nbCarFin = $nbTout - $nbDiv ; // nb caractères de tout sans la div
$resultat = substr($content1, 0, -$nbCarFin); // ne laisse que la div
echo $resultat
?>

Dans l'ensemble, ça semblait fonctionner pas mal, mais, tout d'un coup, ça coince avec certains fichiers html: la page ne s'affiche pas, aucun message d'erreur et je ne comprends pas pourquoi ?
Y aurait-il des limites que je ne connaisse pas ?
Comment pourrais-je voir ce qui ne va pas ?
carpe diem
Bipbipcoyote Bipbipcoyote
4 252 contributions
Membre depuis le 06/03/2001
Envoyé le 07/01/2023 à 02:26 Modifié par Bipbipcoyote


Bonjour,
Ta colonne myrweb ne contient pas de champ vide, par hasard ? Pas d'erreur de casse (majuscule, minuscule) dans le nom des balises ?

tu peux afficher tes variables dans la console de ton navigateur, en faisant un clic droit sur la page, puis "Inspecter" comme lorsque l'on contrôle le CSS (ou avec F12 sous Chrome)

et tu places cette fonction en haut de ta page puis tu demandes d'afficher la valeur de tes variables. juste après leur récupération (dans ton code) Tu pourras alors constater si c'est bien le résultat attendu

Par exemple (tu insères des write_to_console avec tes variables perso, bien entendu)

<?php
function write_to_console($data) {
$console = $data;
if (is_array($console))
$console = implode(',', $console);
echo "<script>console.log('Console: " . $console . "' );</script>";
}


$var1 ="Hello World!";
$var2 = [1,2,3];
write_to_console($var1);
write_to_console($var2);
?>
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
gaston gaston
1 617 contributions
Membre depuis le 01/03/2001
Envoyé le 11/01/2023 à 13:38


Bonjour,

Je ne l'ai pas indiqué, mais je teste que mes variables ne soient pas vides, donc ça ne vient pas de là, et question balises, les pages sont générées par une appli avec un template html, or par exemple, j'ai 2 pages que j'ai créées avec le même template, or l'une ça fonctionne, et l'autre pas [:o]
Je me disais que c'était peut-être une question de taille de fichier , vu que sur Free, y a souvent des restrictions ...?
carpe diem

Discussion trop ancienne

Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.

Nous vous suggérons de créer un nouveau message

« Retour sur la liste des messages de ce forum