Script widget microsoft translate
Posté : 18 févr. 2016, 20:27
Bonjour
J'ai un sérieux problème avec un script qu'un internaute m'a gentiment fourni sachant que j'étais nul en programmation PHP
Il s'agissait d'intégrer le script de Google translate sur mon site construit en frames avec un menu déroulant en PHP.
Ce menu s'appelle treemenu11. Pourquoi ai-je choisi cela parce que c'est le seul menu qui me permette de caser les 2000 pages de mon site.
J'ai d'abord avec ses conseils vérifié que glob_recursive arrivait à lister toutes mes pages htm.
Suite à cela il m'a envoyé un script pour vérifier si la modification (translate d'un de mes fichiers) se faisait sans problème.
Là ça coince (erreur fatal à la ligne 22) . Pour plus d'info je mets le script à la suite
Sur mon navigateur la ligne 22 est celle-ci if (file_put_contents($filename, $contenu_du_fichier_modifie)) {
Merci de m'aider, à 76 ans je ne me vois pas apprendre le php
<?php
// On initialise la variable $filename avec le nom d'un fichier HTML à modifier (si il est dans un répertoire, il faut indiquer le répertoire avant repertoire/fichier_a_modif.html)
$filename = "histoire/auguste.htm";
// On copie colle ici le code à injecter dans chaque page
$code_traduction="<div id='MicrosoftTranslatorWidget' class='Dark' style='color:white;background-color:#555555'></div><script type='text/javascript'>setTimeout(function(){{var s=document.createElement('script');s.type='text/javascript';s.charset='UTF-8';s.src=((location && location.href && location.href.indexOf('https') == 0)?'https://ssl.microsofttranslator.com':'http://www.microsofttranslator.com')+'/ajax/v3/WidgetV3.ashx?siteData=ueOIGRSKkd965FeEGM5JtQ**&ctf=False&ui=true&settings=Manual&from=';var p=document.getElementsByTagName('head')[0]||document.documentElement;p.insertBefore(s,p.firstChild); }},0);</script>";
// On récupère le contenu du fichier et on le stocke dans une variable
$contenu_du_fichier = file_get_contents($filename);
// On injecte le code du widget de traduction
$contenu_du_fichier_modifie = $contenu_du_fichier;
// On vérifie si on trouve la balise <body...>, et si le fichier n'a pas deja ete modifie
if (preg_match("`(<body[^>]*>)`i", $contenu_du_fichier) && !preg_match("`<!-- Debut code traduction -->`i", $contenu_du_fichier)) {
// On a trouvé la balise <body> => on injecte juste après le code pour la traduction
$contenu_du_fichier_modifie = preg_replace("`(<body[^>]*>)`i", "$1\r\n<!-- Debut code traduction -->\r\n".$code_traduction."\r\n<!-- Fin du code traduction -->\r\n", $contenu_du_fichier);
// Et enfin on enregistre le résultat dans le fichier intial
if (file_put_contents($filename, $contenu_du_fichier_modifie)) {
echo $filename." mis a jour avec succes !<br />";
}else{
echo $filename." : [ERREUR] Probleme d'ecriture du fichier<br />";
}
}else{
// La balise <body...> n'a pas ete trouvee => on affiche un message d'erreur
echo $filename." : [ERREUR] Balise <body...> non trouvee OU Code deja injecte<br />";
J'ai un sérieux problème avec un script qu'un internaute m'a gentiment fourni sachant que j'étais nul en programmation PHP
Il s'agissait d'intégrer le script de Google translate sur mon site construit en frames avec un menu déroulant en PHP.
Ce menu s'appelle treemenu11. Pourquoi ai-je choisi cela parce que c'est le seul menu qui me permette de caser les 2000 pages de mon site.
J'ai d'abord avec ses conseils vérifié que glob_recursive arrivait à lister toutes mes pages htm.
Suite à cela il m'a envoyé un script pour vérifier si la modification (translate d'un de mes fichiers) se faisait sans problème.
Là ça coince (erreur fatal à la ligne 22) . Pour plus d'info je mets le script à la suite
Sur mon navigateur la ligne 22 est celle-ci if (file_put_contents($filename, $contenu_du_fichier_modifie)) {
Merci de m'aider, à 76 ans je ne me vois pas apprendre le php
<?php
// On initialise la variable $filename avec le nom d'un fichier HTML à modifier (si il est dans un répertoire, il faut indiquer le répertoire avant repertoire/fichier_a_modif.html)
$filename = "histoire/auguste.htm";
// On copie colle ici le code à injecter dans chaque page
$code_traduction="<div id='MicrosoftTranslatorWidget' class='Dark' style='color:white;background-color:#555555'></div><script type='text/javascript'>setTimeout(function(){{var s=document.createElement('script');s.type='text/javascript';s.charset='UTF-8';s.src=((location && location.href && location.href.indexOf('https') == 0)?'https://ssl.microsofttranslator.com':'http://www.microsofttranslator.com')+'/ajax/v3/WidgetV3.ashx?siteData=ueOIGRSKkd965FeEGM5JtQ**&ctf=False&ui=true&settings=Manual&from=';var p=document.getElementsByTagName('head')[0]||document.documentElement;p.insertBefore(s,p.firstChild); }},0);</script>";
// On récupère le contenu du fichier et on le stocke dans une variable
$contenu_du_fichier = file_get_contents($filename);
// On injecte le code du widget de traduction
$contenu_du_fichier_modifie = $contenu_du_fichier;
// On vérifie si on trouve la balise <body...>, et si le fichier n'a pas deja ete modifie
if (preg_match("`(<body[^>]*>)`i", $contenu_du_fichier) && !preg_match("`<!-- Debut code traduction -->`i", $contenu_du_fichier)) {
// On a trouvé la balise <body> => on injecte juste après le code pour la traduction
$contenu_du_fichier_modifie = preg_replace("`(<body[^>]*>)`i", "$1\r\n<!-- Debut code traduction -->\r\n".$code_traduction."\r\n<!-- Fin du code traduction -->\r\n", $contenu_du_fichier);
// Et enfin on enregistre le résultat dans le fichier intial
if (file_put_contents($filename, $contenu_du_fichier_modifie)) {
echo $filename." mis a jour avec succes !<br />";
}else{
echo $filename." : [ERREUR] Probleme d'ecriture du fichier<br />";
}
}else{
// La balise <body...> n'a pas ete trouvee => on affiche un message d'erreur
echo $filename." : [ERREUR] Balise <body...> non trouvee OU Code deja injecte<br />";