10
votes

Utilisation finale () avec explosion () ne fonctionne pas

J'ai une chaîne qui contiendra un nom de téléchargement de fichier, par exemple "image.jpg". J'essaie d'utiliser la fonction d'explosion, mais cela renvoie une erreur "Explode () s'attend à ce que le paramètre 2 soit une chaîne, une matrice donnée dans ..."

J'ai essayé de chercher des raisons pour lesquelles l'utilisation est la suivante instructé sur php.net mais non en vain. xxx


7 commentaires

Montrez-nous comment vous définissez $ wear_icon


$ Feature_icon doit être une chaîne, pas un tableau.


Vous voudrez peut-être envisager PathInfo () de toute façon ...


$ Feature_icon est juste une chaîne du nom qu'un fichier a été téléchargé. C'est un simple $ dollar_icon = $ _GET ['Feature_icon'];


@ user2332946, pouvez-vous nous montrer le résultat d'un var_dump ($ _ obtenir ["fonction_icon ']); ?


Array (1) {[0] => String (9) "image.jpg"}


@ user2332946 Gardez à l'esprit que vous aurez besoin de valider le type de $ _ obtenir ['Feature_icon'] pour chaîne de toute façon. Si quelqu'un pose contre votre page avec des commandes nommées Feature_icon [] , il créera automatiquement une matrice et vous passerez à exploser, cédant des erreurs.


3 Réponses :


6
votes

Essayez de le faire comme ça séparément: xxx


2 commentaires

En fait, +1 comme fin () attend un argument par référence; ER Go, pas le résultat d'une fonction de fonction ou d'une valeur littérale ( pour pédanterie, une fonction de rendement non-références appelle )


Je déteste ce strict :(




1
votes

Je devrais probablement savoir mieux que de répondre à un fil d'une des années, mais pour ce que ça vaut la peine:

$ upload_extension = fin (exploser (".", $ acharse_icon));

(qui ne fonctionne pas car la fin () ne peut accepter que des tableaux définis dans une variable, et non ceux retournés par des fonctions) peuvent être remplacés par:

$ upload_extension = exploser ('.', $ Feature_icon) [Nombre (explosion ('.' '.', $ Feature_icon)) - 1];

Si vous trouvez que vous trouvez que plus ou moins élégant que d'utiliser une variable intermédiaire pour stocker le tableau ou utiliser deux lignes de code (les deux suggesrés ci-dessus) est une question de préférence personnelle.


1 commentaires

Je ne me souviens même pas de poser cette question - Heck Je n'utilise même plus PHP, mais merci pour la réponse. Cela pourrait être utile aux autres!