IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

ma fonction ne reconnait pas les fichiers avec une extension .php3, pourquoi?


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut ma fonction ne reconnait pas les fichiers avec une extension .php3, pourquoi?
    J'ai un script qui va lire le contenu des fichier.

    Il filtre les fichier avec des extention et accepte
    .htm, .html, php, php3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    	while ($file = readdir($rep)){
    		if ($file != '..' && $file !='.' && $file !='' && $file !='moteur-recherche.php' && (substr_count($file, ".htm") || substr_count($file, ".html") || substr_count($file, ".php")|| substr_count($file, ".php3")))
    		{
     
    .. Suite du code dessous
    Ensuite j'ai ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    			echo $file;
    			$lecture = fopen("$file", "r");
    			$fichier_a_lire = fread($lecture, filesize("$file"));
    			$tagged = $fichier_a_lire;
    			fclose($lecture);
     
    ...
    mon echo $file; me retourne bien page3.php3,

    mais au niveua de fopen(), il me retourne ce message d'erreur
    Warning: fopen(page3.php3) [function.fopen]: failed to open stream: No such file or directory in /Applications/MAMP/htdocs/easycreate/awm/gestion-de-patrimonios/easy-search/moteur-recherche.php on line 61
    es-ce que ca peut venir de mon serveur local?

    Ou es-ce que la fonction fopen() ne reconnait pas le fichier termiant par .php3?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 67
    Points
    67
    Par défaut
    L'erreur signifie qu'il ne trouve pas le fichier.

    Maintenant quelque chose me rend perplexe : tu utilises encore PHP 3 ??

    Si oui, change vite d'hébergeur ou empresse toi d'installer la nouvelle version

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut
    Salut oui, excuse moi pour le manque de précision,
    le fichier php3 existe bien dans le dossier eu question, il le voit!!!
    mon echo $file; me retourne bien page3.php3,
    Pourquoi me dit tu si j'utilise php3? (je connais pas trop php3)
    C'est pas l'évolution de php?

    Pour repondre a ta question, non je n'utilise pas php3, a l'exception que je fait un moteur de recherche et j'aimerai qu'il puisse aussi lire le fichier php3, dans le cas il en existerai un. C'est pourquoi j'ai renommer un de smes fichier php en php3

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut
    En fait c'est bizard, mais quand je met un nom de fichier avec plus de 8 caracteres, ca bloque
    page3.php --> OK
    page33.php -->KO
    page3.php3-->KO


  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut
    En fait suis comoplétement a cote de la paque.

    Le nom du fichier n'arien a voir avec mon probleme,
    C'est le chemin du repertoire que je donne pour effectuer la recherche

    Si a la base, je mets ceci
    ca fonctionne tip top

    Mais si je veux donner un repertoire enfant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rep = opendir("test/");
    il contiue a regarder dans le meme repertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    <?php
    $getpages = 0;
    $search=trim($_GET['search']);
    if (!empty($search)) {
    $irep=0;
    //  while ($repertoire[$irep])
    // {
    	echo("Résultats pour la requête <b>$search</b> :<br><br>");
    	echo $irep;
    	# TRAITEMENT DE LA REQUÊTE ::::::
     
    	// Efface tout ce qui se trouve derrière un espace pour la requête
     
    	// Remplacement des caractères spéciaux
     
    	$search = str_replace("<", "", $search);
    	$search = str_replace(">", "", $search);
    	$search = str_replace("\'", "'", $search);
    	$search = str_replace("_", " ", $search);
    	$search = str_replace("&", "et", $search);
     
    	// Suppression des accents etc...
     
    	$search = str_replace("é", "e", $search);
    	$search = str_replace("è", "e", $search);
    	$search = str_replace("ë", "e", $search);
    	$search = str_replace("ê", "e", $search);
    	$search = str_replace("à", "a", $search);
    	$search = str_replace("ä", "a", $search);
    	$search = str_replace("â", "a", $search);
    	$search = str_replace("ü", "u", $search);
    	$search = str_replace("ù", "u", $search);
    	$search = str_replace("û", "u", $search);
    	$search = str_replace("ô", "o", $search);
    	$search = str_replace("ö", "o", $search);
    	$search = str_replace("î", "i", $search);
    	$search = str_replace("ï", "i", $search);
    	$search = strtolower($search);
     
    	# RECHERCHE DANS LES FICHIERS ::::::
     
    	// Ouverture des pages du site et recherche des fichiers html et php
    	$rep = opendir("test/");
     
    	while ($file = readdir($rep)){
    		if ($file != '..' && $file !='.' && $file !='' && $file !='moteur-recherche.php' && (substr_count($file, ".htm") || substr_count($file, ".html") || substr_count($file, ".php")|| substr_count($file, ".php3")))
    		{
    			// Recherche des infos dans les pages
    			echo $file;
    			$lecture = fopen("$file", "r");
    			$fichier_a_lire = fread($lecture, filesize("$file"));
    			$tagged = $fichier_a_lire;
    			fclose($lecture);
     
    			// Traitement du texte des pages
    			// Suppression des accents
    			$fichier_a_lire = strip_tags($fichier_a_lire); //Supprime les code HTML et PHP
    			$fichier_a_lire = str_replace("é", "e", $fichier_a_lire);
    			$fichier_a_lire = str_replace("è", "e", $fichier_a_lire);
    			$fichier_a_lire = str_replace("ë", "e", $fichier_a_lire);
    			$fichier_a_lire = str_replace("ê", "e", $fichier_a_lire);
    			$fichier_a_lire = str_replace("à", "a", $fichier_a_lire);
    			$fichier_a_lire = str_replace("ä", "a", $fichier_a_lire);
    			$fichier_a_lire = str_replace("â", "a", $fichier_a_lire);
    			$fichier_a_lire = str_replace("ü", "u", $fichier_a_lire);
    			$fichier_a_lire = str_replace("ù", "u", $fichier_a_lire);
    			$fichier_a_lire = str_replace("û", "u", $fichier_a_lire);
    			$fichier_a_lire = str_replace("ô", "o", $fichier_a_lire);
    			$fichier_a_lire = str_replace("ö", "o", $fichier_a_lire);
    			$fichier_a_lire = str_replace("î", "i", $fichier_a_lire);
    			$fichier_a_lire = str_replace("ï", "i", $fichier_a_lire);
    			$fichier_a_lire = strtolower($fichier_a_lire);
     
    			# AFFICHAGE DES RESULTATS ::::::
     
    			if (eregi($search,$fichier_a_lire)) { //eregi = recherche un chaine de caractere. Ne tient pas en compte les maj. et min.
    				$getpages++;
     
    				// Titre de la page
     
    				$titre_page = str_replace(".htm", "", $file);
    				$titre_page = str_replace(".html", "", $titre_page);
    				$titre_page = str_replace(".php", "", $titre_page);
    				$titre_page = str_replace(".php3", "", $titre_page);
    				$titre_page = strtolower($titre_page); //renvoie tout le mot en minuscule
    				$titre_page = ucwords($titre_page); // met la premiere lettre en majuscule
     
    				// Zone de texte concernée
     
    				$lataille = strlen($search); //Compte la longueur de la chaine
    				$passage = strpos($fichier_a_lire, $search); //Trouve la position d'un caractere
    				$nb_affich = substr_count($fichier_a_lire, $search); //Compte le nombre d'occurrences de segments dans une chaîne
    				$passage = substr($fichier_a_lire, $passage, 500); //Retourne un segment de chaîne
    				$passage = wordwrap($passage, 80, "<br>"); //Effectue la césure d'une chaîne
    				$passage = str_replace($search, "<b>$search</b>", $passage);
     
    				// Affichage des données trouvées
     
    				echo("
    				<img border=\"0\" src=\"puce.gif\">
    					<a href=\"$file\">$titre_page</a> - [$nb_affich fois]</a><br>
    					<font color=\"#666666\">
    						<i>$passage</i>
    					</font><br>
    					<a href=\"$file\">$file</a> - <a class=\"menu\" href=\"moteur-recherche.php?search=$titre_page\"><font size=\"1\">Pages similaires</font></a><br><br>
    				");
    			}//Fin if ergi()
    		}// Fin if ($file != '..' && $file 
    	}// Fin while
    	closedir($rep);
    	clearstatcache();
    //$irep++;
    //}
    }else{
    	echo("Le champs de recherche n'a pas été rempli !<br><br>");
    }
     
    // Si aucun résultat
     
    if ($getpages == 0) {
    echo("Pas de résultats...");
    }
    ?>

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 67
    Points
    67
    Par défaut
    Déjà, tu peut optimiser ton code :

    Au lieu de faire des str_replace pour chaque caractères, sais-tu que str_replace peut prendre des array pour argument :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $find    = array('é', 'è', 'ë', 'à', 'â');
    $replace = array('e', 'e', 'e', 'a', 'a');
    $search = str_replace($find, $replace, $search);

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut
    oui vraiment

    Ca marche maintenant, alors pour celui qui cherche un moteur de cherche pour ses page, la réponse est dessus.
    La correction a apporter est la suivante
    1. En haut du code déclarer une nouvelle variable: $get_dir.
    $get_dir="." ==> fait la rechrche à la racine
    $get_dir="test/" ==> fait la recherche dans le dossier test etc

    2. Ajouter ceci:
    ($get_dir==".") ? $get_dir="": print "";

    juste au dessous de la ligne:
    $rep = opendir($get_dir);

    Puis corriger ces deux ligne en ajoutant $get_dir. juste avant $file
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $lecture = fopen($get_dir.$file, "r");
    $fichier_a_lire = fread($lecture, filesize($get_dir.$file));
    Ca marche!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/02/2011, 10h11
  2. Réponses: 9
    Dernier message: 27/08/2010, 09h35
  3. Lister/supprimer des fichiers avec une extension précise
    Par guiguiomr dans le forum VBScript
    Réponses: 10
    Dernier message: 20/05/2008, 10h34
  4. Ouvrir fichier avec une extension dmp
    Par flo_opium dans le forum Oracle
    Réponses: 2
    Dernier message: 23/11/2006, 10h06
  5. Sélectionner tous les fichiers avec l'extension
    Par babarpapa dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 27/03/2006, 10h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo