Erreur dans un script php
Bonjour,
Voici un script en php / mysql pour générer un gros sitemap -avec un sitemap-index à la clé-, la quasi majorité des urls devant constituer le sitemap étant générées à partir d'une table de ma BDD.
À l'exécution, j'ai une erreur système :
Citation:
syntax error, unexpected end of file, expecting variable (T_VARIABLE) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN)
Après bien des recherches, l'erreur semble se situer dans l'instruction (ce qui semble d'ailleurs confirmé par la cessation de coloration du script à partir de cette instruction) : fwrite($xml1, $lachaine); (cf. ligne 24 ci-dessous)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| <?php
$conn = mysqli_connect('... mes données personnelles de connexion à la BDD...');
$req = "SELECT nom, prenom, profession, specialite, code_profession, b5, mode_exercice, cp_ville, a3 FROM table WHERE ((cp_ville > ' ') AND (a3 = 'C') AND !((code_profession = '60') AND (b5 = 'S')) OR (code_profession = '86') OR (code_profession = '50') OR (code_profession = '21') OR (code_profession = '28') OR (code_profession = '98'))";
$resultat = $conn->query("SET NAMES utf8");
$resultat = $conn->query($req) or die('Erreur SQL !'. $req .'' . $conn->connect_error());
$num = 0;
$nb = 1;
$nbt = 1;
define ("SITE", "... url de mon site ...");
$traitement = true;
if ( file_exists('sitemaps/sitemap-1.xml') ) {
if( @unlink('sitemaps/sitemap-*') !== true ) {
$traitement = false;
}
}
if ($traitement) {
// préparation du fichier "sitemap-index.xml"
$xml1 = fopen('sitemaps/sitemap-index.xml',"w");
$lachaine = "<?xml version='1.0' encoding='UTF-8'?>\n" .
"<sitemapindex xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'>\n" .
"<sitemap>\n" .
"<loc>" . SITE . "/sitemaps/sitemap.xml</loc>\n" .
"</sitemap>\n";
fwrite($xml1, $lachaine);
while($arr = mysqli_fetch_array($resultat)) {
if ($nb == 1) {
// on crée un nouveau fichier sitemap-x.xml
$num = $num + 1;
$fich = 'sitemaps/sitemap-' .$num. '.xml';
echo "<br />création du fichier $fich ";
$xml2 = fopen($fich, 'w');
$lachaine = "<?xml version='1.0' encoding='UTF-8'?>\n" .
"<urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'\n" .
" xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\n" .
" xsi:schemaLocation='http://www.sitemaps.org/schemas/sitemap/0.9'\n" .
" 'http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd'>\n";
fwrite ($xml2, $lachaine);
// on complète le fichier sitemap index
$lachaine = "<sitemap>\n<loc>" . SITE . "/sitemaps/sitemap-" .$num. ".xml</loc>\n</sitemap>\n";
fwrite($xml1, $lachaine);
}
// on complète le fichier sitemap-x.xml
if ($arr[3] == '') {
$spec = trim($arr[2]);
}else{
$spec = trim($arr[3]);
}
// on supprime le code postal devant le nom de ville pour ne conserver que le seul nom de ville
$ville = trim(substr($arr[7],7));
$ville2 = strtoupper($ville);
$pos = strpos($ville2, "CEDEX");
if ($pos === false) {
// cette ville n'est pas suivie du Cedex
$vil = $ville;
}else{
// on va supprimer 'CEDEX ...' après le nom de ville
$ll = strlen($ville) - $pos;
$vil = substr($ville, -$ll);
}
$prat = trim($arr[1]). '-' .trim($arr[0]);
$lachaine = "<url>\n<loc>" . SITE . "/" .$spec. "/" .$vil. "/" .$prat. "</loc>\n</url>\n";
fwrite($xml2, $lachaine);
$nb = $nb + 1;
$nbt = $nbt + 1;
if ($nb > 10) {
// pour les tests (mettre 1000 ensuite dans le if au lieu de 10)
$lachaine = "</urlset>\n";
fwrite($xml2, $lachaine);
fclose($xml2);
$nb = 1;
}
// on se contente des 25 premières lignes de la table pour les tests (if à enlever ensuite)
if ($nbt > 25) break;
}
// fin du traitement
$lachaine = "</urlset>\n";
fwrite($xml2, $lachaine);
fclose($xml2);
$lachaine = "</sitemapindex>\n";
fwrite($xml1, $lachaine);
fclose($xml1);
}else{
echo "<br />Les fichiers de travail 'sitemaps/sitemap-*.xml' ne peuvent pas être effacés (traitement impossible) !";
}
mysqli_close($conn);
?>
<br /><br /><p>FIN du TRAITEMENT</p>
<p class="droite"><a href="">Retour à la page d'accueil</a></p> |
Grand merci au cador en php qui me trouvera mon erreur ... en ces jours de fêtes !
Bon dimanche à tous.