recupere le chemin du fichier php.ini

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : recupere le chemin du fichier php.ini

Re: recupere le chemin du fichier php.ini

par devcphp » 24 nov. 2009, 21:40

Merci calimero !
Par parser moi meme le fichier ini, est ce que tu penses à fopen, puis à un preg_match ???

Merci pour ta remarque, mais c'est quand meme bien etrange que meme ini_get qui est une fonction de php pour gerer le fichier ini ne sache pas gerer le fait qu'il y ait plusieurs clef identique.

Enfin c'est comme ca et pas autrement , va falloir faire avec.

Merci à toi.

Re: recupere le chemin du fichier php.ini

par Calimero » 23 nov. 2009, 19:00

La syntaxe extension=XXXXXX utilisée dans le php.ini ne permet pas de récupérer convenablement ces entrées après un passage par parse_ini_file() (L'idée d'un fichier ini c'est un tableau clé=valeur, il n'y a pas de mécanisme pour stocker plusieurs valeurs par clé, contrairement à l'utilisation faite dans php.ini ).

Je pense que tu vas être obligé de parser l'ini toi-même.

Re: recupere le chemin du fichier php.ini

par Dr@ke » 23 nov. 2009, 02:30

Merci pour ton aide mais c'est un fichier ini et il n'y a aucune interpretation resultante .
Si tel est le cas les processus en termes de corrélateurs pourraient permettre de faire converger le système vers une interprétation résultante, presque toujours unique.
(Dans des circonstances normales)

Re: recupere le chemin du fichier php.ini

par Hywan » 22 nov. 2009, 23:22

Lapin compris :-?.

Qu'est-ce tu veux dire ?

Re: recupere le chemin du fichier php.ini

par devcphp » 21 nov. 2009, 18:26

Merci pour ton aide mais c'est un fichier ini et il n'y a aucune interpretation resultante .

Merci quand meme!!

Re: recupere le chemin du fichier php.ini

par Hywan » 19 nov. 2009, 19:50

Peut-être parce qu'il faut écrire

Code : Tout sélectionner

extension[] = one.so extension[] = two.so …
:-).

Re: recupere le chemin du fichier php.ini

par devcphp » 19 nov. 2009, 17:21

Je deterreun peu mais j'ai eu peu de temps .J'ai un problème avec le bout de code ci-dessous, mon tableau obtenu contient plusieurs clefs nommées 'extension' mais seule la derniere m'est renvoyée.

Pourtant mon fichier php.ini en contient plusieurs tel que :

extension = php_pdo.dll
extension = .....
		$sPathToPhpIni = php_ini_loaded_file();  // donne le chemin vers le fichier php.ini

		$aParseurFichierIni = parse_ini_file($sPathToPhpIni);
		foreach ($aParseurFichierIni as $sClef => $sValeur){
			wb_message_box($window,$sClef.' '.$sValeur,'',WBC_INFO);

		}
Pourriez vous me dire pourquoi ?

Merci d' avance

Re: recupere le chemin du fichier php.ini

par devcphp » 09 nov. 2009, 22:00

Pardon je me suis mal exprimé :

Mon probleme est le frocage du init_set qui ne me renvoit jamais une chaine de caractere tel qu'elle le devrait!!C'est d'ailleurs pour ca que le realpath ne m'interessait plus car je n'ai plus aucune erreur sur le chemin.

Par ailleurs sache que pour tester un fichier il est mieux d'utiliser is_file plutot que file_exists car cellec-ci fonctionne aussi avec un dossier!!!

Pour developper mon probleme , mon fichier php.ini contient deja l'extension tel que :

extension = madll.dll

peut etre pour ca que lorsque je tente de forcer par le ini_set , je me fais jetter.

J'aimerais comprendre en fait pourquoi cette reaction.

Merci

Re: recupere le chemin du fichier php.ini

par Hywan » 09 nov. 2009, 17:56

Si ta DDL n'existe pas, tu n'auras pas d'erreur si tu procèdes ainsi :
$dll = realpath(dirname(ini_get('extensions.dir')));

if(file_exists($dll . DIRECTORY_SEPARATOR . 'my.dll'))
    var_dump('ok');
else
    var_dump('nok');
:-).
Mais c'est un peu con car extensions.dir contient déjà un dossier … :-k. Du coup, je ne comprends toujours pas vraiment ton problème :-P.

Re: recupere le chemin du fichier php.ini

par devcphp » 09 nov. 2009, 15:19

Merci à toi j'y avais justement passé.

cependant, apres reflexion, on imagine que la dll n'existe pas donc realpath pour obtenir le chemin vers cette dll ne renverra que false et donc tout mon raisonnement etait compromis.

Mais bon maintenant tout marche grace à php_ini_loaded_file().

Le seul hic vient du ini_set qui ne marche pas dans mon code qui est complet la dessous :

public static function VerifieExtension (){
	
		
		
		
		$sPathToPhpIni = php_ini_loaded_file();   

		$sPathToDirectoryPhpIni = dirname($sPathToPhpIni);

		$sPathToDll = ini_get('extension_dir');  
		
		// on ne peut pas utiliser realpath sur $sPathFinal car si jamais le fichier dll n'existe pas $sPathFinal ne marchera passe et le chargement dynamique par copie de notre dll ne marchera pas
		$sPathFinal = $sPathToDirectoryPhpIni.'/'.$sPathToDll.'php_gd2.dll';
		
		
		if (FALSE === is_string($sPathToDll)){
			wb_message_box($window,'Aucune extension n\'a été trouvé dans le fichier de configuration' ,'Erreur Code Ini_get',WBC_WARNING);
		}elseif( FALSE === is_file($sPathFinal)){    //Retourne TRUE si le nom de fichier existe et que c'est un fichier
			//wb_message_box($window,'Le fichier Dll d\'extension Ftp est introuvable'.$sPathFinal,'Erreur Code Ini_get',WBC_WARNING);
			// on deplace notre dll disponible dans Data\Ext\ afin de la copier dans le dossier des extensions de php et apache 
			if (TRUE === copy(PATH_EXT .'php_gd2.dll', $sPathFinal)){
				//on indique à php et apache la nouvelle extension disponible
				$sExtensionMise = ini_set('extension','php_gd2.dll');
				if( TRUE === is_string($sExtensionMise) ){
					wb_message_box($window,'Le fichier Dll d\'extension'.$sExtensionMise.' a été chargée correctement','Succes d\'importation d\'une Dll',WBC_INFO);
				}else{
					wb_message_box($window,'Impossible de forcer la dll dans le fichier de configuration'.$sExtensionMise.' a été chargée correctement','Succes d\'importation d\'une Dll',WBC_INFO);
				}
			}else{
				wb_message_box($window,'Le chargement dynamique de la dll a été impossible','Extensions manquantes',WBC_INFO);
			}
		
		}
		
		
			
	
		
	}



y vois tu une solution?
merci de ton aide

Re: recupere le chemin du fichier php.ini

par Hywan » 09 nov. 2009, 11:46

As-tu pensé à realpath() ?

Re: recupere le chemin du fichier php.ini

par devcphp » 09 nov. 2009, 10:47

Le probleme est que mon fichier php.ini ne contient aucun chemin absolu sur la localisation de ce fameux fichier php.ini que je pourrais alors simplement retourver avec la methode ini_get!

J'utilise donc la fonction
$sPathToPhpIni = php_ini_loaded_file();

$sPathToDirectoryPhpIni = dirname($sPathToPhpIni);

$sPathToDll = ini_get('extension_dir');


$sPathFinal = $sPathToDirectoryPhpIni.'/'.$sPathToDll.'php_gd2.dll';

En effet , comme je le rappellait plus haut mon projet est assez specifique en cela que je suis sur un poste client et dont je dois verifier que celui-ci est bien réalisé une installation correcte de php ainsi que des dll utiles à mon projet.

Le seul hic que j'ai c'est que je n'arrive pas à forcer un ini_set('extension','MaDll.dll');
qui ne me renvoit jamais un entier tel qu'elle le devrait.

Merci a toi tout de meme

Re: recupere le chemin du fichier php.ini

par Hywan » 09 nov. 2009, 08:26

Hey :-),

Lapin compris.
Si ton paramètre est bien défini dans le php.ini, il le sera dans le phpinfo (qui va lire ses informations dans le php.ini). Donc où est le problème exactement ?

Re: recupere le chemin du fichier php.ini

par devcphp » 07 nov. 2009, 17:45

petite informations supplementaires, la fonction phpinfo() autorise un int en argument ou une constante.

phpinfo(INFO_GENERAL); n'affichera que les information sinteressantes ou on peut alors lire Loaded Configuration File.

Mais je ne sais comment recuperer ce chemin par codage et non par lecture visuel.

recupere le chemin du fichier php.ini

par devcphp » 07 nov. 2009, 17:32

Bonjour à tous,

Mon probleme est assez particulier.Je developpe avec winbinder donc sur un poste client.et j'aurais besoin de verifier que des dll de php soit bien disponible.

Pour cela, c'est assez simple, on est d'accord qu'il suffit de verifier dans notre fichier de configuration php.ini tel que
$sPathToDll = ini_get('extension_dir');

Maintenant il me suffit donc de verifier dans le dossier qui contient mes dll si celle-ci est bien presente à lai'de de la fonction is_file .

PB : $sPathToDll me renvoit /ext ce qui est tout à fait normal en soit mais is_file demande un chemin absolu.

Pourtant , on sait egalement que ce chemin peut etre trouvé car la fonction phpinfo() ne renvoit elle pas la ligne "Loaded Configuration File"qui correspond au chemin vers notre fichier php.ini.

Il me suffirait alors d'ajouter mon chemin vers mes dll afin que le path soit absolue.

et c'est la toute ma question comment obtenir ce chemin ?? existe il une fonction qui puisse me la donner?

D'avance merci