Erreur: Deprecated: str_replace()

Résolu
LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   -  
LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour, j'ai une erreur que je n'arrive pas à résoudre. Pouvez-vous m'aider s'ils vous plait. Je vous remercie.

"Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in C:"

$combinaisonArbre = str_replace ( 2, 1, $combinaisonArbre ) ;

6 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     

    Bonjour,

    Tu dis ne pas parvenir à régler ce souci.... Qu'as-tu donc essayé ?

    À noter, que le message, est plutôt assez explicite....

    Es-tu certain que ta variable contient quelque chose ?

    Pourrais-tu nous le montrer en en faisant un var_dump ?


    0
  2. LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   32
     

    Bonjour suite au var_dump voilà ce qu'il en retourne.

    C:\wamp64\www\partitions\fonctions\arborescence.php:30:string '' (length=0)
    
    C:\wamp64\www\partitions\fonctions\arborescence.php:30:string '1' (length=1)
    

    Non en fait j'ai regardé sur le net pour essayé de comprendre cette erreur afin de la corriger mais en vain.

    Je vous remercie.

    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       

      Tu regardes bien le contenu de la variable $combinaisonArbre

      Avant l'instruction qui te pose problème ?

      Pourrais-tu nous montrer l'intégralité du code et pas juste cette ligne...

      Quoi qu'il en soit, ce message d'avertissement t'indique que ta variable est vide...

      0
  3. LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   32
     

    Bonjour zut j'ai refait  fait un var_dump avant l'instruction de la variable $combinaisonArbre.

    Merci

    C:\wamp64\www\partitions\fonctions\arborescence.php:2:null
    <?php
    require_once ( "ext2icone.php" ) ;
    
    function arborescence ( $chemin, $listeDossiersFichiers, $organisation = null, $rang = 0, $combinaisonArbre = null ) {
    	
    	$dossiers = array () ; $fichiers = array () ;
    	
    	//récupération des tableaux contenant les dossiers et les fichiers
    	//triage des données par ordre alphabétique insensible à la case
    	if ( is_array ( @$listeDossiersFichiers [ $chemin ] [ "dossiers" ] )) {
    		$dossiers = $listeDossiersFichiers [ $chemin ] [ "dossiers" ] ;
    		$dossiers_insensibleCase = array_map ( 'strtolower', $dossiers ) ;
    		array_multisort ( $dossiers_insensibleCase, SORT_ASC, SORT_STRING, $dossiers ) ;
    	}
    	if ( is_array ( @$listeDossiersFichiers [ $chemin ] [ "fichiers" ] )) {
    		$fichiers = $listeDossiersFichiers [ $chemin ] [ "fichiers" ] ;
    		$fichiers_insensibleCase = array_map ( 'strtolower', $fichiers ) ;
    		array_multisort ( $fichiers_insensibleCase, SORT_ASC, SORT_STRING, $fichiers ) ;
    	}
    	
    	//on modifie la combinaison des images de liaison de l'abre pour les sous-branches
    	$combinaisonArbre = str_replace ( 2, 1, $combinaisonArbre ) ; //intersection finale normale => ligne verticale
    	$combinaisonArbre = str_replace ( 3, 1, $combinaisonArbre ) ; //intersection plus => ligne verticale
    	$combinaisonArbre = str_replace ( 5, 0, $combinaisonArbre ) ; //intersection finale normale => rien
    	$combinaisonArbre = str_replace ( 6, 0, $combinaisonArbre ) ; //intersection finale plus => rien
    	
    	if ( $rang != 0 ) {
    		$displayNone = "class=\"displayNone\" " ;
    	}
    	
    	if ( $combinaisonArbre == null ) {
    		//$arborescence = "<div><img src=\"arbo_fichier_pdf/img/icones_ext/folder_music.png\" align=\"absmiddle\" margin=\"0\"/> <b>$chemin</b></div>";
    	}
    	
    	//organisation par ordre alphabétique
    	//on regroupe les tableaux si on ne souhaite pas séparer les fichiers des dossiers lors de l'affichage
    	//donc on souhaite afficher les données par ordre alphbétique (non sensible à la case)
    	if ( $organisation == null ) {
    		$contenu [ $chemin ]  =  array_merge ( $dossiers, $fichiers ) ;
    		$contenu_insensibleCase = array_map ( 'strtolower', $contenu [ $chemin ] ) ;
    		array_multisort ( $contenu_insensibleCase, SORT_ASC, SORT_STRING, $contenu [ $chemin ] ) ;
    		$objets = $contenu [ $chemin ] ;
    		$nbObjets = count ( $objets ) ;
    		
    		$i_objet = 1 ;
    		foreach ( $objets as $objet ) {
    			$nom_objet = $objet ;
    			$md5_objet = md5 ( $objet ) ;
    			if ( strrpos ( $objet, "/" )) {
    				$nom_objet = substr ( $objet, ( strrpos ( $objet, "/" ) +1 )) ;
    			}
    						
    			if ( $i_objet == 1 ) {
    				@$arborescence .= "<div id=\"" .md5 ( $chemin ) ."\" $displayNone>" ;
    			}
    			
    			if ( is_file ( $objet )) {
    				$icone_ext = ext2icone ( $nom_objet ) ;
    				$icone_fichier = "<img src=\"".$icone_ext."\" align=\"absmiddle\" margin=\"0\"/> "; //affiche les icônes des fichiers
    				
    				if ( $i_objet == $nbObjets ) {
    					$combinaisonActuelle = 5 ;
    				}
    				else {
    					$combinaisonActuelle = 2 ;
    				}
    				
    				$combinaison = $combinaisonArbre.$combinaisonActuelle ;
    				$liaisonArbre = liaisonArbre ( $combinaison, $md5_objet ) ;
    				
    				$arborescence .= "<div>".$liaisonArbre.$icone_fichier."<a href=\"$objet\" target=\"_blank\">".$nom_objet."</a></div>"; //affiche le nom des fichiers => $nom_objet = nom des fichiers
    			}
    			else {
    				$icone_dossier = "<img src=\"img/icones_ext/close.png\" align=\"absmiddle\" margin=\"0\"/> "; //affiche les icônes des dossiers
    				
    				if ( $i_objet == $nbObjets ) {
    					if ( count ( @$listeDossiersFichiers [ $objet ] [ "dossiers" ] )  >0 || count ( @$listeDossiersFichiers [ $objet ] [ "fichiers" ] )  >0 ) {
    						$combinaisonActuelle = 6 ;
    					}
    					else {
    						$combinaisonActuelle = 5 ;
    					}
    				}
    				else {
    					if ( count ( @$listeDossiersFichiers [ $objet ] [ "dossiers" ] )  >0 || count ( @$listeDossiersFichiers [ $objet ] [ "fichiers" ] ) >0 ) {
    						$combinaisonActuelle = 3 ;
    					}
    					else {
    						$combinaisonActuelle = 2 ;
    					}
    				}
    				
    				$combinaison = $combinaisonArbre.$combinaisonActuelle ;
    				$liaisonArbre = liaisonArbre ( $combinaison, $md5_objet ) ;
    				$arborescence .= "<div><span class=\"pointer\" onclick=\"enrouleDeroule_arbre('$md5_objet','$combinaisonActuelle');\">".$liaisonArbre."</span>".$icone_dossier.$nom_objet."</div>" ;
    				$arborescence .= arborescence ( $objet, $listeDossiersFichiers, $organisation, $rang +1, $combinaison ) ;
    			}
    			
    			if ( $i_objet == $nbObjets ) {
    				$arborescence .= "</div>" ;
    			}
    			$i_objet++ ;
    		}
    	}
    	
    	//organisation par ordre fichiers/dossiers ou dossiers/fichiers
    	elseif ( $organisation == "FICHIERS_DOSSIERS" || $organisation == "DOSSIERS_FICHIERS" ) {
    		
    		//nombre de dossiers et fichiers
    		//$nbDossiers = count ( $dossiers ) ;
    		//$nbFichiers = count ( $fichiers ) ;
    		
    		//gestion des fichiers		
    		$i_fichier = 1 ;
    		foreach ( $fichiers as $fichier ) {
    			$nom_fichier = $fichier ;
    			$md5_fichier = md5 ( $fichier ) ;
    			if ( strrpos ( $fichier, "/" )) {
    				$nom_fichier = substr ( $fichier, ( strrpos ( $fichier, "/" ) +1 )) ;
    			}
    			if ( $organisation == "FICHIERS_DOSSIERS" ) {
    				if ( $i_fichier == $nbFichiers && $nbDossiers == 0 ) {
    					$combinaisonActuelle = 5 ;
    				}
    				else {
    					$combinaisonActuelle = 2 ;
    				}
    			}
    			else {
    				if ( $i_fichier == $nbFichiers ) {
    					$combinaisonActuelle = 5 ;
    				}
    				else {
    					$combinaisonActuelle = 2 ;
    				}
    			}
    			
    			$combinaison = $combinaisonArbre.$combinaisonActuelle ;
    			$liaisonArbre = liaisonArbre ( $combinaison, $md5_fichier ) ;
    			$icone_ext = ext2icone ( $nom_fichier ) ;
    			$icone_fichier = "<img src=\"".$icone_ext."\" align=\"absmiddle\" margin=\"0\"/> " ;
    			
    			if ( $organisation == "FICHIERS_DOSSIERS" ) {
    				if ( $i_fichier == 1 ) {
    					$arborescence_fichiers .= "<div id=\"".md5 ( $chemin ) ."\" $displayNone>" ;
    				}
    			}
    			else {
    				if ( $i_fichier == 1 && $nbDossiers == 0 ) {
    					$arborescence_fichiers .= "<div id=\"".md5 ( $chemin ) ."\" $displayNone>" ;
    				}
    			}
    			$arborescence_fichiers .= "<div>".$liaisonArbre.$icone_fichier."<a href=\"$fichier\">".$nom_fichier."</a></div>" ;
    			
    			if ( $organisation == "FICHIERS_DOSSIERS" ) {
    				if ( $i_fichier == $nbFichiers && $nbDossiers == 0 ) {
    					$arborescence_fichiers .= "</div>" ;
    				}
    			}
    			else {
    				if ( $i_fichier == $nbFichiers ) {
    					$arborescence_fichiers .= "</div>" ;
    				}
    			}
    			$i_fichier++ ;
    		}
    	
    		//gestion des dossiers
    		
    		$i_dossier = 1 ;
    		foreach ( $dossiers as $dossier ) {
    			$nom_dossier = $dossier ;
    			$md5_dossier = md5 ( $dossier ) ;
    			if ( strrpos ( $dossier, "/" )) {
    				$nom_dossier = substr ( $dossier, ( strrpos ( $dossier, "/" ) +1 )) ;
    			}
    			if ( $organisation == "FICHIERS_DOSSIERS" ) {
    				if ( $i_dossier == $nbDossiers ) {
    					if ( count ( $listeDossiersFichiers [ $dossier ] [ "dossiers" ] )  >0 || count ( $listeDossiersFichiers [ $dossier ] [ "fichiers" ] )  >0 ) {
    						$combinaisonActuelle = 6 ;
    					}
    					else {
    						$combinaisonActuelle = 5 ;
    					}
    				}
    				else {
    					if ( count ( $listeDossiersFichiers[$dossier ] [ "dossiers" ] )  >0 || count ( $listeDossiersFichiers [ $dossier ] [ "fichiers" ] )  >0 ) {
    						$combinaisonActuelle = 3 ;
    					}
    					else {
    						$combinaisonActuelle = 2 ;
    					}
    				}
    			}
    			else {
    				if ( $i_dossier == $nbDossiers && $nbFichiers == 0 ) {
    					if ( count ( $listeDossiersFichiers [ $dossier ] [ "dossiers" ] )  >0 || count ( $listeDossiersFichiers [ $dossier ] [ "fichiers" ] )  >0 ) {
    						$combinaisonActuelle = 6 ;
    					}
    					else {
    						$combinaisonActuelle = 5 ;
    					}
    				}
    				else {
    					if ( count ( $listeDossiersFichiers [ $dossier ] [ "dossiers" ] )  >0 || count ( $listeDossiersFichiers [ $dossier ] [ "fichiers" ] )  >0 ) {
    						$combinaisonActuelle = 3 ;
    					}
    					else {
    						$combinaisonActuelle = 2 ;
    					}
    				}
    			}
    			$combinaison = $combinaisonArbre.$combinaisonActuelle ;
    			$liaisonArbre = liaisonArbre ( $combinaison, $md5_dossier ) ;
    			$icone_dossier = "<img src=\"img/icones_ext/dossier.png\" align=\"absmiddle\" margin=\"0\"/> " ;
    			
    			if ( $organisation == "FICHIERS_DOSSIERS" ) {
    				if ( $i_dossier == 1 && $nbFichiers == 0 ) {
    					$arborescence_dossiers .= "<div id=\"".md5 ( $chemin ) ."\" $displayNone>" ;
    				}
    			}
    			else {
    				if ( $i_dossier == 1 ) {
    					$arborescence_dossiers .= "<div id=\"".md5 ( $chemin ) ."\" $displayNone>" ;
    				}
    			}
    			$arborescence_dossiers .= "<div><span class=\"pointer\" onclick=\"js/enrouleDeroule_arbre('$md5_dossier','$combinaisonActuelle');\">".$liaisonArbre."</span>".$icone_dossier."<a href=\"$dossier\">".$nom_dossier."</a></div>" ;
    			$arborescence_dossiers .= arborescence ( $dossier, $listeDossiersFichiers, $organisation, $rang +1, $combinaison ) ;
    			if ( $organisation == "FICHIERS_DOSSIERS" ) {
    				if ( $i_dossier == $nbDossiers ) {
    					$arborescence_dossiers .= "</div>" ;
    				}
    			}
    			else {
    				if ( $i_dossier == $nbDossiers && $nbFichiers == 0 ) {
    					$arborescence_dossiers .= "</div>" ;
    				}
    			}
    			$i_dossier++ ;
    		}
    	
    		//sortir les données dans l'ordre souhaité
    		//fichiers puis dossiers
    		if ( $organisation == "FICHIERS_DOSSIERS" ) {
    			$arborescence = $arborescence.$arborescence_fichiers.$arborescence_dossiers ;
    		}
    		//dossiers puis fichiers
    		else {
    			$arborescence = $arborescence.$arborescence_dossiers.$arborescence_fichiers ;
    		}
    	}
    	return @$arborescence ;
    }
    ?>
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       

      As tu compris que le soucis est que ta variable est null  et qu'elle ne le devrait pas as ?

      Il faut donc voir d'où elle provient pour corriger le souci

      0
  4. LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   32
     

    Bonjour oui je regarde merci.

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   32
     

    Bonjour c'est le bin's...

    En fait j'avais 3 erreur sur la même page que je n'avais pas vu. Donc la première est résolu j'ai initialisé cette variable.

    voici mes 2 autres erreurs.

    Merci pour votre aide.

    Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in C:\wamp64\www\partitions\fonctions\arborescence.php on line 86
    
    TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in C:\wamp64\www\partitions\fonctions\arborescence.php on line 86
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       

      Et bien ?

      Le message d'erreur est plutôt clair non ?

      0
      1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        //Code
        if ( count ( $listeDossiersFichiers [ $objet ] [ "dossiers" ] )  >0 || count ( $listeDossiersFichiers [ $objet ] [ "fichiers" ] ) >0 ) {
        	$combinaisonActuelle = 3 ;
        }
        // A remplacer par :
        if ( !empty($listeDossiersFichiers[ $objet ][ "dossiers" ]) || !empty($listeDossiersFichiers[ $objet ][ "fichiers" ])0 ) {
        	$combinaisonActuelle = 3 ;
        }
        0
  7. LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   32
     

    Bonjour Un très grand merci pour votre aide. Tout fonctionne sans aucune erreur. Cordialement.

    0