2017-07-24 6 views
0

Alors que cela fonctionne parfaitement, à la recherche d'un moyen de faire un peu plus propre, et aussi d'apprendre le long du chemin !!! J'ajoute /thumbs à un répertoire et une chaîne de fichier, et ajoute également _thumb à la fin du nom de fichier de cette même chaîne.PHP ajouter plusieurs chaînes dans une chaîne à plusieurs positions

de cette ... Galerie/Test/Image/image.jpg

à cette ... Galerie/Test/Image/pouces/image_thumb.jpg

mais les chemins peuvent changer en fonction de la longueur sur la structure du répertoire, mais/thumbs sera toujours le dernier répertoire, et _thumb sera toujours avant le "."

$thumb_dir = substr($file, 0, strrpos($file, '/')) . '/thumbs' . substr($file, strrpos($file, '/')); 

    $thumbnail = substr($thumb_dir, 0, strrpos($thumb_dir, '.')) . '_thumb' . substr($thumb_dir, strrpos($thumb_dir, '.')); 

Merci

+0

Vous pouvez également le faire avec des expressions régulières: https://3v4l.org/AjNgC Je ne le publie pas en tant que réponse parce que la réponse acceptée est certainement une meilleure solution. Mais je pensais que c'était une approche intéressante. – icecub

Répondre

3

pathinfo pourrait vous aider si votre version de PHP est> 5.2.0+

$path_parts = pathinfo('Gallery/Test/Image/image.jpg'); 
echo $path_parts['dirname'].'/thumbs/'.$path_parts['filename'].'_thumb.'.$path_parts['extension']; 

Petite explication du code

$path_parts['dirname'] allait chercher le répertoire complet chemin de la voie donnée dans ce cas ce serait Gallery/Test/Image. Ensuite, nous avons ajouté un répertoire appelé '/thumbs/' dans la chaîne. Ensuite, nous devrions obtenir le nom du fichier en utilisant $path_parts['filename'] qui irait chercher image et non image.jpg et nous avons ajouté '_thumb.'. et plus tard nous suffixons avec l'extension.

+0

Je suis sur 5.31, donc je vais essayer, très apprécié! – Simon

+1

Hey Mohit, Cela a fonctionné parfaitement, merci !! Merci aussi pour l'explication, je lis aussi la documentation de la fonction! Vraiment apprécier votre aide! – Simon

+0

Hey @Simon. Merci pour ces mots gentils. Heureux d'aider. :) –