par
fwy » 25 avr. 2013, 11:44
Bonjour,
Je créé en ce moment un site multilangue, j'ai des fichiers lang-fr.php,lang-en-php,land-ro.php etc qui sont chargés
avec un include par rapport à la langue choisie ( envoyée par la methode GET).
Ce qui veut dire que dans toutes les pages de mon site, le contenu fait référence a une variable de ces fichiers.
par exemple pour écrire le contenu d'une div j'ai une variable $contenu5 que j'affiche avec un echo.
Afin de faire une recherche interne a mon site, j'ai créé un script qui ouvre un dossier où il y a mes pages.
Ensuite il ouvre la page pour y afficher le contenu. j'ai donc utilisé la méthode file_get_contents();
Le problème est qu'il ne m'affiche pas le contenu de type texte, étant donné que celui ci doit être chargé avec
le include ("lang-fr.php") par exemple. il n'interprete donc pas le code php du fichier que je lui demande de lire.
Vous auriez une solution.
Merci
Voici le code de ma recherche
Code : Tout sélectionner
<?php
if(!isset($_POST['search'])){
echo "Vous n'avez recherché aucun mot.";
}
else{
$search=$_POST['search'];
echo "<strong>Votre recherche : </strong>". $search."<br/><br/>";
$resultat=0;
if(strlen($search) <=3) {
echo "Merci de rentrez un mot de plus de 3 caractères";
}else{
if($dossier = opendir('Engagements')) {
while($fichier = readdir($dossier)) {
if($fichier != '.' && $fichier != '..') {
$contenu= file_get_contents('Engagements/'.$fichier);
echo $contenu;
echo "<br><br><br><br><br><br><br><br>";
if (preg_match("/.".$search."/i", $contenu)){
$resultat++;
preg_match('/\<title>(.+)\<\/title\>/Ui',$contenu,$titre);
echo '<strong>Titre de la page : </strong>'.$titre[1]. '<br/>';
// Récuperer uniquement contenu entre <body> et </body>
preg_match('#<body>(.+)</body>#isU', $contenu, $resume_preg);
$resume=strip_tags($resume_preg[1]);
echo '<font color="red"><strong>Contenu entier de la page : </strong></font>'.resume_mots($resume).'<br/>';
echo '<a href="./pages/' . $fichier . '">' . $fichier . '</a><br/>';
echo '---------------------------------------------------------------------------------<br/><br/>';
}
}
}
if($resultat==0){
echo "<strong>Aucun résultat trouvé, réessayer avec d'autres mots clés</strong><br/>";
}else{
echo '<br />';
echo 'Il y a <strong>' . $resultat .'</strong> résultat(s) à votre recherche';
}
closedir($dossier);
}else{
echo 'Erreur interne lors de la recherche';
}
}
}
?>
Bonjour,
Je créé en ce moment un site multilangue, j'ai des fichiers lang-fr.php,lang-en-php,land-ro.php etc qui sont chargés
avec un include par rapport à la langue choisie ( envoyée par la methode GET).
Ce qui veut dire que dans toutes les pages de mon site, le contenu fait référence a une variable de ces fichiers.
par exemple pour écrire le contenu d'une div j'ai une variable $contenu5 que j'affiche avec un echo.
Afin de faire une recherche interne a mon site, j'ai créé un script qui ouvre un dossier où il y a mes pages.
Ensuite il ouvre la page pour y afficher le contenu. j'ai donc utilisé la méthode file_get_contents();
Le problème est qu'il ne m'affiche pas le contenu de type texte, étant donné que celui ci doit être chargé avec
le include ("lang-fr.php") par exemple. il n'interprete donc pas le code php du fichier que je lui demande de lire.
Vous auriez une solution.
Merci
Voici le code de ma recherche
[code]<?php
if(!isset($_POST['search'])){
echo "Vous n'avez recherché aucun mot.";
}
else{
$search=$_POST['search'];
echo "<strong>Votre recherche : </strong>". $search."<br/><br/>";
$resultat=0;
if(strlen($search) <=3) {
echo "Merci de rentrez un mot de plus de 3 caractères";
}else{
if($dossier = opendir('Engagements')) {
while($fichier = readdir($dossier)) {
if($fichier != '.' && $fichier != '..') {
$contenu= file_get_contents('Engagements/'.$fichier);
echo $contenu;
echo "<br><br><br><br><br><br><br><br>";
if (preg_match("/.".$search."/i", $contenu)){
$resultat++;
preg_match('/\<title>(.+)\<\/title\>/Ui',$contenu,$titre);
echo '<strong>Titre de la page : </strong>'.$titre[1]. '<br/>';
// Récuperer uniquement contenu entre <body> et </body>
preg_match('#<body>(.+)</body>#isU', $contenu, $resume_preg);
$resume=strip_tags($resume_preg[1]);
echo '<font color="red"><strong>Contenu entier de la page : </strong></font>'.resume_mots($resume).'<br/>';
echo '<a href="./pages/' . $fichier . '">' . $fichier . '</a><br/>';
echo '---------------------------------------------------------------------------------<br/><br/>';
}
}
}
if($resultat==0){
echo "<strong>Aucun résultat trouvé, réessayer avec d'autres mots clés</strong><br/>";
}else{
echo '<br />';
echo 'Il y a <strong>' . $resultat .'</strong> résultat(s) à votre recherche';
}
closedir($dossier);
}else{
echo 'Erreur interne lors de la recherche';
}
}
}
?>[/code]