Ajouter une occurence sur une chaine

Petit nouveau ! | 6 Messages

20 nov. 2006, 15:21

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 !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 nov. 2006, 15:26

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 3607 Messages

20 nov. 2006, 15:28

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

ViPHP
ViPHP | 1961 Messages

20 nov. 2006, 15:28

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
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Petit nouveau ! | 6 Messages

20 nov. 2006, 15:33

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

ViPHP
ViPHP | 1961 Messages

20 nov. 2006, 15:39

Re,
Je ne comprends pas!
$protocole = "http://";
$adresse = "www.google.com";
$adresse = $protocole . $adresse;
echo $adresse; // Affichera http://www.google.com
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Petit nouveau ! | 6 Messages

20 nov. 2006, 15:48

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
Modifié en dernier par R0_0T le 20 nov. 2006, 15:54, modifié 1 fois.

ViPHP
ViPHP | 3607 Messages

20 nov. 2006, 15:51

pfff y en a que pour ajoloca [-( nous autres (Ryle et moi), on peut sortir....

ViPHP
ViPHP | 1961 Messages

20 nov. 2006, 16:10

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);
   }
}
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 nov. 2006, 16:17

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 ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 1961 Messages

20 nov. 2006, 16:27

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.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Petit nouveau ! | 6 Messages

20 nov. 2006, 16:35

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
+><$(X-|_|-X)£><+