Bonjour. visiteurs jour : 15       Au président     Beauté santé     Infos loisirs     Ensemble      Jean      Informatique     Einstein     Santé corona

Les joies de l'informatique et de l'internet !





Coucou et merci


  Accueil - Disques - Excel - Informatique - Infos - Internet - Javascript - logiciels  - Programation - Sites RJ - Vidéo - Plan du site -



   

PHP Chaines de caractères

Fonctions sur les chaines de caractère

Sorties vers le Navigateurs

echo chaine Envoie la chaine vers la sortie standard.

print(chaine) Envoie la chaine vers la sortie standard.

printf(chaine, arguments) Envoie vers la sortie standard les arguments en utilisant la chaine.

flush() Vide les buffers de sortie.


Recherches, comparaisons, fragmentation

Longueur d’une chaine : strlen($str);

Extraction d’une sous-chaine

Souschaine =substr($chaine, p, lg) débute à p et à une longueur = lg (le premier c est à zero)

substr($chaine, -3) retourne les 3 derniers caractères

$x= substr($chaine, 0, strlen($chaine)-1) retourne la chaine moins le dernier caractère


Remplacement d’une sous chaine

str_replace ( char1, char2, string) remplace tous les char1 de string par char2.


int strlen( chaine) Retourne la longueur de la chaine.

int strcmp( chaine1,chaine2) Comparaison sensible à la case.


Position d’une sous-chaine dans une chaine

$p=Strpos($chaine,$morceau) ; renvoie la position de morceau et false si pas trouvé

If ($p===false) les 3 = pour distinguer la position 0 du premier caractère de la valeur false !

$p=Strpos(« abcabc », « a »,1) ; renvoie 4 car la recherche saute n caractère et commence ici à partir du 2è  (n=1)



int strpos( chaine1,chaine2) Recherche la première occurrence de chaine2 dans chaine1.

int strrpos( chaine1,chaine2) Recherche la dernière occurrence de chaine2 dans chaine1.

             $p=strrpos(« ABC-ABC », »BC ») retourne 5 qui est la position du 2è et dernier BC


int strstr( chaine1,chaine2) Recherche la première occurrence d'une chaine dans une chaine.

str_replace( chaine1,chaine2,chaine3) Remplace toutes les occurrences de chaine1 dans chaine3 par chaine2.

strtr( chaine1,chaine2,chaine3) Remplace toutes les occurrences d'un caractère (chaine2) par un autre (chaine3) dans chaine1.

substr( chaine, int début) Retourne une partie de la chaine.

array explode( separateur,chaine) Découpe une chaine en morceau grâce au séparateur.

$tableau=explode(";",$chaine)  découpe la chaine selon le séparateur ";"


(?) int strchr( chaine1, char chaine2) Recherche la première occurrence d'un caractère.

(?) int strrchr( chaine1, char chaine2) Recherche la dernière occurrence d'un caractère dans une chaine.

istrspn( chaine1,chaine2) Recherche longueur du 1er segment de chaine dont tous les caractères appartiennent à chaine 2.

strcspn( chaine1,chaine2) Retourne la longueur du premier segment de chaine 1 qui ne contient aucun caractère de chaine2.

//strtok( delim) Découpe la chaine en plusieurs chaines en utilisant les caractères de delim.

//chunk_split( chaine [, int longueur]) Découpe une chaine en plusieurs morceaux. Split PERIMé utiliser EXPLODE?


Transformation, conversions

addslashes( chaine) Ajoute un slash devant tous les caractères spéciaux.

stripslashes( chaine) Enlève les slash ajouté par la fonction addslashes.


htmlspecialchars( chaine) Convertit tous les caractères spéciaux en HTML.

quotemeta( chaine) Ajoute un backslash devant tous les caractères méta.

htmlentities( chaine) Convertit tous les caractères en HTML.

n12br( chaine) Convertit les "n" en "<br>".


ucfirst( chaine) Force le premier caractère de la chaine en majuscule.

ucwords( chaine) Force le premier caractère de chaque mot d'une chaine en majuscule.

strtolower( chaine) Met tous les caractères en minuscule.

strtoupper( chaine) Met tous les caractères en majuscule.

strrev( chaine) Inverse une chaine.


Suppressions

chop( chaine) Enlève les espaces de fin de chaine.

trim( chaine) Enlève les espaces au début et à la fin de la chaine.

ltrim( chaine) Enlève les espaces de début de chaine.

strip_tags( chaine) Enlève les balises HTML et PHP.

stripslashes( chaine) Enlève les slash ajouté par la fonction addslashes.

quoted_printable_decode( chaine) Convertit une chaine avec des slash en chaine sans slash.

 

Divers

sprintf( chaine, arguments) Retourne une chaine construite avec les arguments en utilisant la chaine.

int ord( chaine) Retourne la valeur ASCII du caractère.

chr(int code_ascii) Retourne un caractère.

bin2hex( chaine) Convertit une valeur binaire en hexadécimal.

crypt( chaine,sel) Encrypte une chaine avec un DES.


md5( chaine) Calcule un md5 avec la chaine.


array get_meta_tags( fichier) Extrait toutes les balises meta d'un fichier et les retournes dans un tableau.

void parse_str( chaine) Analyse une chaine et en déduit des variables et leur valeur.


rawurldecode( chaine) Décode une chaine URL.

rawurlencode( chaine) Encode une chaine en URL, selon la RFC1738.


intval() Retourne la valeur numérique entière équivalente d'une variable


Découpage d'une chaine avec séparateur

$a="aaa;bbb;ccc"

$Tab=split(";",$A); PERIMé! Utiliser explode

$Tab=explode(";",$A);

Fontion inverse : $A=implode(";",$Tab); recole les éléments 0, 1,2,n… du tableau avec; comme séparateur (join fait de même)

Le résultat est identique à $Tab[0]="aaa" - $Tab[1]="bbb" - $Tab[2]="ccc" –

while(list($ind,$enr)=@each($f)) {
$T_para[$n]=explode ("===",$enr);
$n++;
}


Passage en minuscules / majuscules

$str = "Bonjour à tous !";

echo strtoupper($str); // affiche "BONJOUR A TOUS !"

echo strtolower($str); // affiche "bonjour à tous !"

echo ucwords($str); // affiche "Bonjour A Tous!"




Doc sur substr_replace :


string substr_replace(string string ,string replacement ,int start ,[int length ])


effectue un remplacement dans la portion de string délimitée par le caractère start et de longueur optionnelle length. Le remplacement est fait avec la chaîne replacement. Le résultat est retourné.


Si start est positif, le remplacement commencera au caractère start, dans la chaîne string.

Si start est négative, le remplacement commencera au caractère start en partant de la fin de la chaîne string.


Si length est donné et positif, la chaîne retournée aura la longueur length. Si length est donné et négatif, la chaîne retournée aura la longueur length, en partant de la fin. Par défaut, il prendra la valeur de strlen(string ); c'est-à-dire qu'il remplacera jusqu'à la fin de la chaîne string.


Exemple avec substr_replace

<?php

$var = 'ABCDEFGH:/MNRPQR/';

/* Ces deux exemples remplacent tout $var avec 'bob'. */

echo substr_replace($var, 'bob', 0)."<br>n";

echo substr_replace($var, 'bob', 0, strlen($var))."<br>n";


/* Insère 'bob' à gauche, du début de $var. */

echo substr_replace($var, 'bob', 0, 0)."<br>n";


/* Ces deux exemples remplacent 'MNRPQR' dans $var avec 'bob'. */

echo substr_replace($var, 'bob', 10, -1)."<br>n";

echo substr_replace($var, 'bob', -7, -1)."<br>n";


/* Efface 'MNRPQR' dans $var. */

echo substr_replace($var, '', 10, -1)."<br>n";

?>


Voir aussi str_replace et substr.


Nettoyer une chaine de caractère

Protéger les caractères spéciaux

$chaine=addslaches(chaine); // ajoute des antislahs '' avant les caractères spéciaux

Supprimer les caractères d'échappement ""

$chaine=stripslaches(chaine);


Supprimer les espaces de début et de fin de chaine

$chaine=trim($chaine); // enlève les espaces au début et à la fin d'une chaine

$chaine=trim($chaine,"t"); // enlève les tabulations au début et à la fin d'une chaine

" " (ASCII 32 (0x20)), un espace ordinaire : par défaut.

"t" (ASCII 9 (0x09)), une tabulation.

"n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).

"r" (ASCII 13 (0x0D)), un retour chariot (carriage return CR).

"" (ASCII 0 (0x00)), le caractère NUL.

"x0B" (ASCII 11 (0x0B)), une tabulation verticale. (line feed LF)

rtrim() - Supprime les espaces (ou d'autres caractères) de fin de chaîne

ltrim les supprimle en début


$text = "ttVoici quelques mots :) ... ";

Echo rtrim($text, " t."); affiche le texte sans les tabulations et sans les points à la fin : "Voici quelques mots :)"

// enlève les caractères de contrôle ASCII à la fin de $binary (de 0 à 31 inclusif)

$clean = rtrim($binary, "x00..x1F");


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

$c=chr(45) — Retourne un caractère à partir de son code ASCII


Source : http://php.net/manual/fr/ref.strings.php



Coder les caractères accentués pour envoi par GET

Envoyer

% suivi du code hexadécimal du caratère :

CC = "%".CodeHexa = Hex(Asc("é"))


Pour récupérer le résultat : C = Chr(Val("&h" & CodeHexa))


NOTA


"%" & Hex(Asc("é"))

affiche "%E9" et

Google affiche lui

%C3%A9 caractère "é" de école dans

http://www.google.fr/search?q=%C3%A9cole)




Solution partielle en VB

Text1 = LCase(Text1)

For i = 1 To Len(Text1)

c= Mid(Text1, i, 1)

If c<> "é" And c<> "è" And c<> "à" And c<> "ù" And c

<> "ñ" And c<> "â" And c<> "ê" And c<> "î" And c

<> "ô" And c<> "û" And c<> "ä" And c<> "ë" And c

<> "ï" And c<> "ö" And c<> "ü" Then

temptxt = temptxt & "%" & Hex(Asc(c ))

Else

c= Replace(c , "é", "%C3%A9")

c= Replace(c , "è", "%C3%A8")

c= Replace(c , "à", "%C3%A0")

c= Replace(c , "ù", "%C3%B9")

c= Replace(c , "ñ", "%C3%B1")

c= Replace(c , "â", "%C3%A2")

c= Replace(c , "ê", "%C3%AA")

c= Replace(c , "î", "%C3%AE")

c= Replace(c , "ô", "%C3%B4")

c= Replace(c , "û", "%C3%BB")

c= Replace(c , "ä", "%C3%A4")

c= Replace(c , "ë", "%C3%AB")

c= Replace(c , "ï", "%C3%AF")

c= Replace(c , "ö", "%C3%B6")

c= Replace(c , "ü", "%C3%BC")

temptxt = temptxt & c

End If

Next i
 

Solution en PHP ;-)

orig = Array("é", "è", "à"…)

donn = Array("%C3%A9", "%C3%A8", "%C3%A0"…)

Text1 = Replace(Text1, orig, donn)


Voir http://www.table-ascii.com/


$c=chr(45) — Retourne un caractère à partir de son code ASCII


Source : -> php.net/manual/fr/ref.strings.php




-
vues  1100     En ligne actuellement :   3   Total des clics  1665098