Raccourcir une chaîne...

Eléphanteau du PHP | 15 Messages

25 janv. 2009, 21:04

Bonsoir,

J'ai passé mon après-midi sans trouver la réponse...

Soit une chaîne comme "http://www.viwiv.com/lp-content/uploads ... 25x300.jpg"...

Je voudrai la transformer en http://www.viwiv.com/lp-content/uploads ... t00302.jpg

C'est à dire sans "225x300".

Le champ "http://www.viwiv.com/lp-content/uploads/2008/08/" peut naturellement varier (c'est l'intérêt de la programmation !), ainsi que le "225x300.jpg"...

En revanche, le tiret avant "225x300.jpg" apparaît toujours ! :)

J'ai essayé "explode", "implode", "substr", sans succès.

J'ai lu attentivement la documentation de Php, mais elle ne m'a pas renseigné.

Merci pour votre aide !

V.

Mammouth du PHP | 991 Messages

25 janv. 2009, 21:15

Bon soir.

Je ne comprend pas :)

Il faut reperer ce qui est variable et ce qui ne l'est pas.

http://www.viwiv.com/ => Variable ?
lp-content/uploads/2008/08/ => Variable(Apparemment oui)
pict00302 => Variable (Apparemment oui)
-225x300.jpg => la structure est la même ? soit 12 caractères.

Tu peux faire en premier un explode pour récuperer l'extension ici : .jpg
Puis un $rest = substr($maVar, -12, 0);

Bye Hawk

(Un bout de code de ce que tu as fait serait du meilleur effet)
DevOps, Symfony4, Hoa

Eléphant du PHP | 170 Messages

25 janv. 2009, 21:15

Bonsoir,

par exemple en utilisant les expressions régulières :
<?php

$url = 'http://www.viwiv.com/lp-content/uploads/2008/08/pict00302-225x300.jpg';

$new_url = preg_replace('/-\d+x\d+/', '', $url);

echo $new_url;

?>

Eléphanteau du PHP | 15 Messages

25 janv. 2009, 21:53

Bonsoir,

Merci, je vais tester un peu plus tard les deux solutions, car là je suis fatigué.

Je produirai mon code ici en espérant qu'il sera du "meilleur effet" ! :lol:

Pour répondre à thehawk, "http://www.viwiv.com" est variable (un autre site...), la longueur de la chaîne "-225x300.jpg" peut aussi varier et être de type "-1024x1024" ou "_1024x800" : voilà qui complique peut-être la situation.

Quoiqu'il en soit, encore merci.

Bien à vous,

V.
-----
(3 heures plus tard)

Re...

Oui, oui, Blof, ton expression régulière me donne entière satisfaction !

Il ne me reste pas qu'à la décrypter et à la comprendre pour vouloir progresser.

Merci à toi,

Cordialement,

V.