Page 1 sur 1

Ajouter une occurence sur une chaine

Posté : 20 nov. 2006, 15:21
par R0_0T
Bonjour, bonsoir à tous : )

(HS: je découvre le forum : ))

Je cherche une fonction permettant de rajouter au debut ou à la fin d'une chaine, une occurence.
J'ai pourtant cherché sans succes, je ne suis pas sur de son existence.

Voila un peu la fonction de mes rêves ; >

Ce n'est qu'un exemple:

<? $buffer = "34"; str_ajout_debut("12", $buffer); ?> //ceci devra donner 1234

<? $buffer = "12"; str_ajout_fin("34", $buffer); ?> // 1234

Merci !

Posté : 20 nov. 2006, 15:26
par Ryle
Et euh..... y a une raison pour laquelle une simple concaténation ne suffirait pas ?
$buffer = "34";
$buffer = $buffer . "56"; // donne 3456
// ou 
$buffer.= "56"; // donne 3456

$buffer = "34";
$buffer = "12" . $buffer ; // donner 1234
Sinon tu as la fonction str_pad() qui s'en rapproche et qui a d'autres avantages, mais ça me parait un peu lourd juste pour concatener deux chaines :)

Posté : 20 nov. 2006, 15:28
par jojolapine
euh tu n'as pas besoin d'une fonction pour ça...
$buffer="23";
//on ajoute au début
$buffer="12".$buffer;
//ou à la fin
$buffer=$buffer."45";
//et même mieux
$buffer.="67";
après faire une fonction si tu veux, mais bon ... :-k je vois pas l'intéret

Posté : 20 nov. 2006, 15:28
par Ajoloca
Bonjour,

En PHP l'opérateur de concaténnation c'est le '.' (point)

un petit exemple, un.
$chaine = "une chaine";
$deb = "Le d&eacute;but d'";
$fin = " et sa fin";
$chaine = $deb . $chaine . $fin;
echo $chaine; // Affichera Le début d'une chaine et sa fin

Posté : 20 nov. 2006, 15:33
par R0_0T
Et euh..... y a une raison pour laquelle une simple concaténation ne suffirait pas ?
$buffer = "34";
$buffer = $buffer . "56"; // donne 3456
// ou 
$buffer.= "56"; // donne 3456

$buffer = "34";
$buffer = "12" . $buffer ; // donner 1234
Sinon tu as la fonction str_pad() qui s'en rapproche et qui a d'autres avantages, mais ça me parait un peu lourd juste pour concatener deux chaines :)
Un exemple concert:

Un utilisateur entre www.google.com, je souhaite rendre le lien en http://www.google.com .


merci, je vais essaier str_pad(), mais elle est un peu handicapante : / à cause de l'int pad_length

Posté : 20 nov. 2006, 15:39
par Ajoloca
Re,
Je ne comprends pas!
$protocole = "http://";
$adresse = "www.google.com";
$adresse = $protocole . $adresse;
echo $adresse; // Affichera http://www.google.com

Posté : 20 nov. 2006, 15:48
par R0_0T
Merci Ajoloca c'est bien ce que je cherchais : D autant pour moi.
Je voulais savoir s'il y'avait un autre moyen de concaténation à part le '.' apparement non, mais il fera l'affaire. merci

Edit: Excusez moi ; ) merci à tous en particulier à Ryle, jojolapine et Ajoloca :D

Posté : 20 nov. 2006, 15:51
par jojolapine
pfff y en a que pour ajoloca [-( nous autres (Ryle et moi), on peut sortir....

Posté : 20 nov. 2006, 16:10
par Ajoloca
Re,
ne soyez pas jaloux, c'est juste un oubli !
@R0_0T

Si tu tiens vraiment à créer une fonction, bien que je ne vois pas trop l'intérêt, tu peux avoir QQ chose du style
define ('DEB', 0);
define ('FIN', 1);
function strCat ($strSrc, $strConcat, $sens = FIN){
   switch ($sens){
      case DEB : return ($strConcat . $strSrc);
      case FIN : 
      default : return ($strSrc . $strConcat);
   }
}

Posté : 20 nov. 2006, 16:17
par Ryle
On est pas jaloux.. on t'attends juste à la sortie du forum avec une barre de fer qu'on m'a prêté pour l'occasion ;)

le switch est peut être superflu dans la fonction, un simple if/else étant suffisant...
Pour ma part, la fonction je l'aurais vu bien plus simplifiée :
function concat($chaineGauche, $chaineDroite) {
  return $chaineGauche . $chaineDroite;
}
Ce qui n'aurait, je vous l'accorde, absolument aucun intérêt .. cqfd donc ;)

Posté : 20 nov. 2006, 16:27
par Ajoloca
Re,
Pour la barre de fer, je m'en f... mois aussi on m'a prété une armure :lol:

C'est vrai que ta fonction est bien plus simplifiée et fait ce qui est demandé, la mienne je l'ai prise d'une classe et elle permet aussi d'insérer une chaine dans une autre à une position donné.
Je l'ai juste (mal) adaptée.

Posté : 20 nov. 2006, 16:35
par R0_0T
Elle peut etre -dans certain, cas je l'avoue : P,- utile, tout depend, je travaille sur un projet de média et le nombre de lien à traité est énorme, je code donc une fonction pour me simplifier la tache, au départ je voulais m'assurer s'il y'avait une fonction semblable.

Je voiais plutot une fonction de ce style

fonction(string string, string injecte, const emplacement)

fonction("www.google.com","http://","LEFT"); // par exemple