Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Site Web > PHP > Vos Fonctions ou astuces > Lecture du sujet

Vos Fonctions ou astuces

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  ...  89  90  91  92  93  94  95  ...  97  98  99  100  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  89  90  91  92  93  94  95  ...  97  98  99  100  Suivante
Hors ligne Jeremie78 # Posté le 07/08/2008 à 19:55:38
Powered by GNU/Linux
Groupe : Membres
Reprise du dernier message de la page précédente :
Citation : Yaëld
Vous avez oublié le mot clé les gars : SIMPLIFIER

perso, j'utilise aussi MySQLi mais pour des débutants, une fonction qui gère MySQL en une fonction c'est pas mal je trouve.
Après, OK c'est "mocheachier" t'a raison :p .


J'utilise PDO :) (en standard avec PHP 5 :p)
Et ma classe de gérant les SGBDR sert juste à gérer la connexion et les erreurs (avec PDO, ce sont des execptions, il faut donc les "catcher" !).

Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site, générateur de bannières, de userbars, ...
 
Hors ligne croky # Posté le 16/08/2008 à 15:50:24
Graor!
Groupe : Membres
Détermine le pays du visiteur.
Paramètre ipaddr : adresse IP dont le pays doit être déterminé.
Si non fourni, renvoie pays de l'adresse IP exécutant le script.

Secret (cliquez pour afficher)
Code : PHP
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
<?php
function getcountry($ipaddr = 'this') {
    $ipaddr = ($ipaddr = 'this' ? $_SERVER['REMOTTE_ADDR'] : $ipaddr);
    $hostname = gethostbyaddr($ipaddr);    
    $hostdots = explode('.', $hostname);    
    $countrycode = $hostdots[count($hostdots) - 1];
    
    $countries = array(
        'ac' => 'Île de l?Ascension',
        'ad' => 'Andorre',
        'ae' => 'Émirats arabes unis',
        'af' => 'Afghanistan',
        'ag' => 'Antigua-et-Barbuda',
        'ai' => 'Anguilla',
        'al' => 'Albanie',
        'am' => 'Arménie',
        'an' => 'Antilles néerlandaises',
        'ao' => 'Angola',
        'aq' => 'Antarctique',
        'ar' => 'Argentine',
        'as' => 'Samoa américaines',
        'at' => 'Autriche',
        'au' => 'Australie',
        'aw' => 'Aruba',
        'ax' => 'Åland',
        'az' => 'Azerbaïdjan',
        
        'ba' => 'Bosnie-Herzégovine',
        'bb' => 'Barbade',
        'bd' => 'Bangladesh',
        'be' => 'Belgique',
        'bf' => 'Burkina Faso',
        'bg' => 'Bulgarie',
        'bh' => 'Barhein',
        'bi' => 'Burundi',
        'bj' => 'Bénin',
        'bm' => 'Bermudes',
        'bn' => 'Brunei',
        'bo' => 'Bolivie',
        'br' => 'Brésil',
        'bs' => 'Bahamas',
        'bt' => 'Bouthan',
        'bv' => 'Île Bouvet',
        'bw' => 'Botswana',
        'by' => 'Biélorussie',
        'bz' => 'Belize',
        
        'ca' => 'Canada',
        'cc' => 'Îles Cocos',
        'cd' => 'République démocratique du Congo',
        'cf' => 'République centrafricaine',
        'cg' => 'Congo',
        'ch' => 'Suisse',
        'ci' => 'Côte d\'Ivoire',
        'ck' => 'Îles Cook',
        'cl' => 'Chili',
        'cm' => 'Cameroun',
        'cn' => 'République populaire de Chine',
        'co' => 'Colombie',
        'cr' => 'Costa Rica',
        'cs' => 'Serbie-et-Monténégro',
        'cu' => 'Cuba',
        'cv' => 'Cap-Vert',
        'cx' => 'Île Christmas',
        'cy' => 'Chypre',
        'cz' => 'République tchèque',
        
        'de' => 'Allemagne',
        'dj' => 'Djibouti',
        'dk' => 'Danemark',
        'dm' => 'Dominique',
        'do' => 'République dominicaine',
        'dz' => 'Algérie',
        
        'ec' => 'Équateur',
        'ee' => 'Estonie',
        'eg' => 'Égypte',
        'eh' => 'Sahara occidental',
        'er' => 'Érythrée',
        'es' => 'Espagne',
        'et' => 'Éthiopie',
        'eu' => 'Union européenne',
        'fi' => 'Finlande',
        'dj' => 'Fidji',
        'fk' => 'Îles Malouines',
        'fm' => 'Micronésie',
        'fo' => 'Îles Féroé',
        'fr' => 'France métropolitaine',
        
        'ga' => 'Gabon',
        'gb' => 'Royaume-Uni',
        'gd' => 'Grenade',
        'ge' => 'Géorgie',
        'gf' => 'Guyane française',
        'gg' => 'Guernesey',
        'gh' => 'Ghana',
        'gi' => 'Gibraltar',
        'gl' => 'Groenland',
        'gm' => 'Gambie',
        'gn' => 'Guinée',
        'gp' => 'Guadeloupe',
        'gq' => 'Guinée équatoriale',
        'gr' => 'Grèce',
        'gs' => 'Géorgie du Sud',
        'gt' => 'Guatemala',
        'gu' => 'Guarn',
        'gw' => 'Guinée-Bisseau',
        'gy' => 'Guyana',
        
        'hk' => 'République populaire de Chine',
        'hn' => 'Honduras',
        'hr' => 'Croatie',
        'ht' => 'Haïti',
        'hu' => 'Hongrie',
        'id' => 'Indonésie',
        'ie' => 'Irlande',
        'il' => 'Israël',
        'im' => 'Île de Man',
        'in' => 'Inde',
        'io' => 'Territoire britannique de l\'océan Indien',
        'iq' => 'Irak',
        'ir' => 'Iran',
        'is' => 'Islande',
        'it' => 'Italie',
        
        'je' => 'Jersey',
        'jm' => 'Jamaïque',
        'jo' => 'Jordanie',
        'jp' => 'Japon',
        
        'ke' => 'Kenya',
        'kg' => 'Kirghizstan',
        'kh' => 'Cambodge',
        'ki' => 'Kiribati',
        'km' => 'Union des Comores',
        'kn' => 'Saint-Christophe-et-Niévès',
        'kp' => 'Corée du Nord',
        'kr' => 'Corée du Sud',
        'kw' => 'Koweït',
        'ky' => 'Îles Caïmans',
        'kz' => 'Kazakhstan',
        
        'la' => 'Laos',
        'lb' => 'Liban',
        'lc' => 'Sainte-Lucie',
        'li' => 'Liechtenstein',
        'lk' => 'Sri Lanka',
        'lr' => 'Libéria',
        'ls' => 'Lesotho',
        'lt' => 'Lituanie',
        'lu' => 'Grand-Duché de Luxembourg',
        'lv' => 'Lettonie',
        'ly' => 'Libye',
        
        'ma' => 'Maroc',
        'mc' => 'Monaco',
        'md' => 'Moldavie',
        'me' => 'Monténégro',
        'mg' => 'Madagascar',
        'mh' => 'Marshall',
        'mk' => 'Macédoine',
        'ml' => 'Mali',
        'mm' => 'Birmanie',
        'mn' => 'Mongolie',
        'mo' => 'Macao',
        'mp' => 'Îles Mariannes du Nord',
        'mq' => 'Martinique',
        'mr' => 'Mauritanie',
        'ms' => 'Montserrat',
        'mt' => 'Malte',
        'mu' => 'Maurice',
        'mv' => 'Maldives',
        'mw' => 'Malawi',
        'mx' => 'Mexique',
        'my' => 'Malaisie',
        'mz' => 'Mozambique',
        
        'na' => 'Namibie',
        'nc' => 'Nouvelle-Calédonie',
        'ne' => 'Niger',
        'nf' => 'Île de Norfolk',
        'ng' => 'Nigeria',
        'ni' => 'Nicaragua',
        'nl' => 'Pays-Bas',
        'no' => 'Norvège',
        'np' => 'Népal',
        'nr' => 'Nauru',
        'nu' => 'Niué',
        'nz' => 'Nouvelle-Zélande',
        
        'om' => 'Oman',
        
        'pa' => 'Panama',
        'pe' => 'Pérou',
        'pf' => 'Polynésie française',
        'pg' => 'Papouasie-Nouvelle-Guinée',
        'ph' => 'Philippines',
        'pk' => 'Pakistan',
        'pl' => 'Pologne',
        'pm' => 'Saint-Pierre-et-Miquelon',
        'pn' => 'Pitcairn',
        'pr' => 'Porto Rico',
        'pt' => 'Portugal',
        'pw' => 'Palaos',
        'py' => 'Paraguay',
        
        'qa' => 'Qatar',
        
        're' => 'La Réunion',
        'ro' => 'Roumanie',
        'rs' => 'Serbie',
        'ru' => 'Russie',
        'rw' => 'Rwanda',
        
        'sa' => 'Arabie saoudite',
        'sb' => 'Salomon',
        'sc' => 'Seychelles',
        'sd' => 'Soudan',
        'se' => 'Suède',
        'sg' => 'Singapour',
        'sh' => 'Sainte-Hélène',
        'si' => 'Slovénie',
        'sj' => 'Svalbard et Jan Mayen',
        'sk' => 'Slovaquie',
        'sl' => 'Sierra Leone',
        'sm' => 'Saint-Marin',
        'sn' => 'Sénégal',
        'so' => 'Somalie',
        'sr' => 'Suriname',
        'st' => 'Sao Tomé-et-Principe',
        'su' => 'CEI',
        'sv' => 'Salvador',
        'sy' => 'Syrie',
        'sz' => 'Swaziland',
        
        'tc' => 'Îles Turques et Caïques',
        'td' => 'Tchad',
        'tf' => 'Terres australes et antarctiques françaises',
        'tg' => 'Togo',
        'th' => 'Thaïlande',
        'tj' => 'Tadjikistan',
        'tk' => 'Tokelau',
        'tl' => 'Timor oriental',
        'tm' => 'Turkménistan',
        'tn' => 'Tunisie',
        'to' => 'Tonga',
        'tp' => 'Timor oriental',
        'tr' => 'Turquie',
        'tt' => 'Trinité-et-Tobago',
        'tv' => 'Tuvalu',
        'tw' => 'Taïwan',
        'tz' => 'Tanzanie',
        
        'ua' => 'Ukraine',
        'ug' => 'Ouganda',
        'uk' => 'Royaume-Uni',
        'um' => 'Îles mineures éloignées des États-Unis',
        'us' => 'États-Unis',
        'uy' => 'Uruguay',
        'uz' => 'Ouzbékistan',
        
        'vc' => 'Saint-Vincent-et-les Grenadines',
        've' => 'Venezuela',
        'vg' => 'Îles Vierges britanniques',
        'vi' => 'Îles Vierges américaines',
        'vn' => 'Viêt Nam',
        'vu' => 'Vanuatu',
        
        'wf' => 'Wallis-et-Futuna',
        'ws' => 'Samoa',
        
        'ye' => 'Yémen',
        'yt' => 'Mayotte',
        
        'za' => 'Afrique du Sud',
        'zm' => 'Zambie',
        'zw' => 'Zimbabwe'
    );
    
    return $countries[$countrycode];
}
?>
Hors ligne Sargeros # Posté le 16/08/2008 à 16:14:22
Avatar
Groupe : Membres
Fais plutôt ça au début :

Code : PHP
1
2
<?php
function getcountry($ipaddr = $_SERVER['REMOTTE_ADDR']) {
Hors ligne JaKhris # Posté le 16/08/2008 à 16:26:18
Wait & See
Avatar
Groupe : Membres
Je dirais même <?php function getcountry($ipaddr = $_SERVER['REMOTE_ADDR']) { /* Un seul T à REMOTE :p */ ?> . ;)

Mes sites : JAKPRO ~ URPRO ~ page Flickr
XHTML, CSS, JS, PHP, MySQL, Graphics, Music & Video Games : This is living ! =D
 
Hors ligne anonyme # Posté le 16/08/2008 à 16:31:05
Groupe :
Sauf que ça renverra une erreur.
Hors ligne Jeremie78 # Posté le 16/08/2008 à 16:53:12
Powered by GNU/Linux
Groupe : Membres
Il me semble que ce genre de détection (avec le hostname) n'est vraiment pas fiable.
Mieux vaut utiliser les services dits de "geoIP". Y a des BDD toutes prêtes avec les plages d'IP reliées aux pays sources, et le résultats est recherché avec une simple fonction de recherche dans la BDD.

Après évidemment, c'est *plus* fiable, mais pas infaillible ;) (loin de là)

Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site, générateur de bannières, de userbars, ...
 
Hors ligne luc@s # Posté le 17/08/2008 à 18:39:42
PPHP
Avatar
Groupe : Membres
Fonction htmlspecialchars pour tableaux :

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<?php
/*
*  Fonction _htmlspecialchars pour tableaux
*  Cette fonction est la même que htmlspecialchars sauf qu'elle peut traiter des tableaux de manière récursive.
*  string _htmlspecialchars  ( mixed $var  [, int $quote_style  [, string $charset  [, bool $double_encode  ]]] )
*/

function _htmlspecialchars($var,$quote_style=0,$charset='ISO-8859-1',$double_encode=true) {
	if(is_array($var)) {
		foreach($var as $key=>$value) {
			$var[$key]=_htmlspecialchars($value,$quote_style,$charset,$double_encode);
		}
	} else {
		return htmlspecialchars($var,$quote_style,$charset,$double_encode);
	}
	return $var;
}
?>

Code : PHP
1
2
3
4
5
<?php
if(!rtfm()) {
    exit();
}
?>
 
Hors ligne croky # Posté le 17/08/2008 à 19:02:44
Graor!
Groupe : Membres
Array_map() fait déjà ça.
Récursivement, je sais pas.
Hors ligne Jeremie78 # Posté le 17/08/2008 à 20:54:21
Powered by GNU/Linux
Groupe : Membres
array_walk_recursive :)

Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site, générateur de bannières, de userbars, ...
 
Hors ligne Timot # Posté le 17/08/2008 à 23:12:20
Réfléchir ne tue pas !
Avatar
Groupe : Membres
Une fonction pour faire des probabilités.
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
function randProb() {
	$numArgs = func_num_args();
	$tabArgs = func_get_args();

	//Si le dernier argument est un tableau, valeurs de retour données
	$tabVal = false;
	if(is_array($tabArgs[$numArgs-1])) {
		$tabVal = array_pop($tabArgs);
		$numArgs--;
	}

	//On remplie le tableau des fréquences cumulées croissantes
	$tabFrequences= array();
	for($i = 0; $tabArgs[$i]; $i++) 
		$tabFrequences[] = $tabFrequences[$i-1] + (($tabArgs[$i] > 1)? $tabArgs[$i]/100 : $tabArgs[$i]);

	//Si la deniere frequence n'est pas de 1
	if(end($tabFrequences) != 1)
		die("La somme des fréquences ne fait pas 1. Veuillez changer les valeurs envoyées");
	
	//On trouve la valeur aléatoire
	$numRand = mt_rand(0,100)/100;
	$numValueRand = false;
	for($i=0; $tabFrequences[$i] && !$numValueRand; $i++) {
		if($numRand <= $tabFrequences[$i])
			$numValueRand = $i+1;
	}
	
	//Si c'est encore false, erreur
	if(!$numValueRand)
		die("Erreur lors de la séléction de la valeur");
	
	//Si les valeurs n'étaient pas jointes, on renvoi
	if(!$tabVal || empty($tabVal[$numValueRand-1]))
		return $numValueRand;
	else
		return $tabVal[$numValueRand-1];
}
?>


Donc le système sert à sortir une valeur aléatoire en suivant des fréquences de probabilité.
Exemple, combat entre deux personnages. L'un gagne 9 fois sur 10.
Envoyer à la fonction les deux fréquences, donc soit en pourcentages : randProb(90,10); ou alors en fréquence : randProb(0.9,0.1).
Si on fait une boucle pour vérifier, on obtient bien que le personnage gagne environ 9 fois sur 10.

Voila, on peut envoyer autant de fréquence qu'on veut, du moment que la somme fait 1 (ou 100 en pourcentage).
Et on peut rajouter un tableau comme dernier paramètre contenant les valeurs associées aux fréquences.
Exemple : randProb(20,30,10,40,array("bleu","vert","rouge","noir")) retourna bleu si c'est la 1ere qui est tiré, vert pour la 2eme, ...

Voili, voilou, si vous avez des questions, n'hésitez pas ! ;)
Édité le 17/08/2008 à 23:25:39 par Timot

Vous vous y connaissez en compatibilité IE/JS ? Venez m'aider ici ... :-°
Image utilisateur
 
Hors ligne shine-neko # Posté le 21/08/2008 à 12:23:01
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
array_walk_recursive et
Array_map() peut t'on rajouter des paramètre au fonction ?

La v3 de Shine-Shiina est sortit
Qui n'a jamais rêver d'apprendre a dessiner , Cuisiné japonnais dévorer de nouveaux manga fait par des copains et d'apprendre le japonais ?
=> La réponse se trouve ici
Image utilisateur

 
Hors ligne robocop # Posté le 21/08/2008 à 14:06:32
Avatar
Groupe : Membres
Non, je ne crois pas.
Il faut faire un foreach il me semble :) !
 
Hors ligne Lpu8er # Posté le 21/08/2008 à 14:22:59
[R34n1m4T3d]
Avatar
Groupe : Membres
Si, tu peux en rajouter mais c'est bordélique, 'faut les mettre en array, et avoir autant d'éléments que l'array traité...

Le or die(mysql_error()), nom d'un chien !!!
(et apprenez à concaténer avant de le faire)
 
Hors ligne Jeremie78 # Posté le 21/08/2008 à 18:04:37
Powered by GNU/Linux
Groupe : Membres
Autant utiliser une fonction "perso" qui ajoute ces paramètres ;)
C'est pas bien compliqué ...

Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site, générateur de bannières, de userbars, ...
 
Hors ligne shine-neko # Posté le 21/08/2008 à 19:31:38
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
Oui donc vaux mieux créer la sienne ^^

La v3 de Shine-Shiina est sortit
Qui n'a jamais rêver d'apprendre a dessiner , Cuisiné japonnais dévorer de nouveaux manga fait par des copains et d'apprendre le japonais ?
=> La réponse se trouve ici
Image utilisateur

 
Hors ligne Jeremie78 # Posté le 21/08/2008 à 21:39:18
Powered by GNU/Linux
Groupe : Membres
Oui c'est ça :)
On fait une fonction qui appelle la fonction intéressante en lui ajoutant des paramètres.

Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site, générateur de bannières, de userbars, ...
 
Hors ligne robocop # Posté le 23/08/2008 à 17:54:13
Avatar
Groupe : Membres
Hors ligne Talus # Posté le 31/08/2008 à 17:00:33
タルス
Avatar
Groupe : Membres
JE relance un peu le sujet avec une fonction qui convertit une donnée flottante (1.3, 654.7, etc.) en une donnée de temps (HH:MM:SS). Utile pour le décalage horaire UTC par exemple (+3, +2.75, etc.)...

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
/**
 * Transforme une heure flottante (1.3) au format HH:MM:SS
 *
 * @param float $time Décalage à transformer (1.3, etc)
 * @return string
 */
function float_to_time($time){
    $sign = $time >= 0 ? '+' : '-';
    
    $time = abs((float)$time);
    $h = floor($time);
    
    $time = ($time - $h) * 60;
    $m = floor($time);
    
    $s = floor(($time - $m) * 60);
        
    return array(
            'h' => str_pad($h, 2, '0', STR_PAD_LEFT), 
            'm' => str_pad($m, 2, '0', STR_PAD_LEFT), 
            's' => str_pad($s, 2, '0', STR_PAD_LEFT), 
            'sign' => $sign
        );
}
Édité le 31/08/2008 à 21:46:13 par Talus
 
Hors ligne reydown # Posté le 31/08/2008 à 17:16:45
Groupe : Membres
Bonjour,

J'ai créer des fonctions qui peu être peu utile pour la plus part d'entre vous, mais elles m'ont permis d'apprendre le fonctionnement des fonctions :

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php

function select($nom_champs, $nom_table) //Fonction de Select
{
	"SELECT'".$nom_champs."'FROM '".$nom_table."'";
}

function select_where($nom_champs, $nom_table, $champs_where, $prop_champs) //Fonction de Select avec un Where
{
	"SELECT'".$nom_champs."'FROM '".$nom_table."' WHERE '".$champs_where."' = '".$prop_champs."'";
}

function insert_into($nb_insert, $nom_table, $nom_champs, $prop_champs) //Fonction de Insert Into
{
	// Creation de l'array tableau_champ
	$tableau_champ = array ("".$nom_champs."");

	// Boucle pour creer le nombre de champs necessaire
	for ($numero = 0; $numero < $nb_insert; $numero++)
	{
	    echo $tableau_champ[$numero];
	}
	// Creation de l'array tableau_champ1
	$tableau_champ1 = array ("".$nom_champs."");

	// Boucle pour creer le nombre de propriété des champs necessaire
	for ($numero2 = 0; $numero2 < $nb_insert; $numero2++)
	{
	    echo $tableau_prop_champ[$numero2];
	}
        $tableau_prop_champ1 = array ("".$nom_champs."");

	
	'INSERT INTO "'.$nom_table.'"("'.$nom_champs.'")
	VALUES("'.$prop_champs.'")';

}

?>


Je tiens a préciser : la dernière fonction je l'est créé mais je ne sais pas encore comment la faire fonctionner.

Elles m'ont permis a me familiariser avec les fonctions, si vous souhaiter les prendre vous pouvez.

Image utilisateur
 
Hors ligne Talus # Posté le 31/08/2008 à 17:19:49
タルス
Avatar
Groupe : Membres
Euh ouais je pense que c'est nettement plus rapide de faire tout à la main ^^. Et puis aussi, faut que tu comprennes un peu mieux l'interet de la concaténation (surtout, ca sert à rien le coup du <?php $var = "" . $truc . ""; ...), et des tableaux aussi... ^^.

Et aussi, bourrée de fautes de syntaxes, car les chaines de caractères, comme ca, dans le vide, ben PHP (et tout autre langage d'ailleurs !) n'aime pas ca.
Édité le 31/08/2008 à 17:33:16 par Talus
 
Hors ligne reydown # Posté le 31/08/2008 à 17:31:33
Groupe : Membres
D'accord, la prochaine fois j'essayerais de faire une fonction utile pour tous le monde ^^. je répète : c'était juste pour m'entrainer au fonction ^^.

Image utilisateur
 
Hors ligne Jeremie78 # Posté le 31/08/2008 à 18:04:22
Powered by GNU/Linux
Groupe : Membres
C'est brouillon tout ça ...
Je te conseilles de bien relire le tuto de PHP parce que là tu risques de faire des erreurs dans le code de ton site ;)

Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site, générateur de bannières, de userbars, ...
 
Hors ligne Cortexd # Posté le 31/08/2008 à 20:12:16
Maouunnwww !
Avatar
Groupe : Membres
Citation : Talus
et je rajoute cette fonction, nécessaire à la première (juste une affaire de style, voyez :p), mais qui peut etre utile, et qui fait à peu près comme SQL pour remplir une chaine de caractère à un nombre minimal de caractères nécessaires :

bien bien, tu te rapproches de str_pad() :p

Comme l'or, il est caresse et volupté...
Image utilisateur Arrêt sur image


 
Hors ligne Talus # Posté le 31/08/2008 à 21:10:09
タルス
Avatar
Groupe : Membres
Je l'avais zappée celle là :p.
 
Hors ligne EmmaBlack # Posté le 31/08/2008 à 21:13:08
Avatar
Groupe : Membres
xD On ne peut pas se rappeler de toutes les fonctions du manuel non plus :)

Image utilisateur
 
Hors ligne Sargeros # Posté le 01/09/2008 à 08:10:42
Avatar
Groupe : Membres
Citation : EmmaBlack
xD On ne peut pas se rappeler de toutes les fonctions du manuel non plus :)


Talus, si :D
Hors ligne MmeWood # Posté le 05/09/2008 à 15:59:29
Peace & Love ^^
Avatar
Groupe : Membres
Je ne sais pas si ça peut être utile à d'autre, si une fonction préfaite existe déjà ceci dit voici la mienne:

Auteur: MmeWood
Type: Fonction / Astuce
But: Mettre au pluriel ou non selon une donnée numérique
Code:
Code : PHP
1
2
3
4
5
6
7
8
9
<?php
function pluriel($var)
{
   if ($var > 1)
      return 's';
   else
      return '';
}
?>

Exemple: Dans le cadre d'un forum, nombre de message écrit par un membre
Code : PHP
1
2
3
4
5
6
7
8
<?php
$a = 0;
$b = 1;
$c = 2;
echo $a.' message'.pluriel($a).'<br/>';
echo $b.' message'.pluriel($b).'<br/>';
echo $c.' message'.pluriel($c).'<br/>';
?>

Citation : Rendu
0 message
1 message
2 messages

Édité le 05/09/2008 à 16:13:15 par MmeWood
Hors ligne sheva-mafioso # Posté le 05/09/2008 à 16:14:34
GeeK Squad
Avatar
Groupe : Membres
Et si le pluriel est "aux" par exemple :p ?

Shepard avait fait cette fonction, page 2 de ce même topic :

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
// Permet de mettre au pluriel un mot en fonction d'un nombre
// Ex : echo 'mot'.pluriel(5); ==> affiche mots
// Ex : echo 'cheva'.pluriel(5, 'ux', 'l'); ==> affiche chevaux
// Ex : echo 'cheva'.pluriel(1, 'ux', 'l'); ==> affiche cheval
function pluriel($nb, $pluriel = 's', $singulier = '')
{
	return ($nb > 1) ? $pluriel : $singulier;
}
?>
 
Hors ligne Nanocom # Posté le 06/09/2008 à 00:55:42
Salut ô !
Avatar
Groupe : Membres
Une fonction que j'ai pas trouvée dans le topic "officiel" (je sais qu'elle a été proposée mais je ne sais pas où et la flemme de lire tout le topic) : permet d'insérer une chaine de caractères dans une url.

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
function str2url ($str) {

	$str = strtr($str,"ÀÁÂÃÄÅàáâãäåÇçÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ", "AAAAAAaaaaaaCcOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNn");
	$str = strtolower(trim($str));
	$str = preg_replace ('/[^a-z0-9\-\.,\*]/', '-', $str) ;
	$str = preg_replace ('/([\-\.,\*]{2,})/ue', "substr('\\1', 0, 1)", $str) ;
	$str = preg_replace ('/^[^a-z0-9]|[^a-z0-9]$/', '', $str ) ;
	
	return $str;

}
?>


Source : DotClear.
Hors ligne JaKhris # Posté le 06/09/2008 à 01:22:47
Wait & See
Avatar
Groupe : Membres
Ça serait plus malin d'appliquer le strtolower avant, pour que le strtr soit moins lourd, non ?

Sinon c'est plutôt lourd, 3 regex c'est déjà pas mal je trouve, m'enfin je me trompe peut-être.

Moi j'ai ça, qui me convient :
Code : PHP
1
2
3
4
5
6
7
8
9
<?php
function strtourl($str, $separator = '-') {
	$str = strtolower(trim($str));
	$str = strtr($str, 'àáâãäåçèéêëìíîïñòóôõöùúûüýÿ', 'aaaaaaceeeeiiiinooooouuuuyy');
	$str = preg_replace('`[^a-z0-9]+`', $separator, $str);
	$str = trim(preg_replace('`'.$separator.'{2,}`', $separator, $str), $separator);
	return $str;
}
?>


Bon j'ai deux preg_replace... mais bon. :D
Édité le 06/09/2008 à 01:24:55 par JaKhris

Mes sites : JAKPRO ~ URPRO ~ page Flickr
XHTML, CSS, JS, PHP, MySQL, Graphics, Music & Video Games : This is living ! =D
 
Hors ligne Sargeros # Posté le 06/09/2008 à 12:52:44
Avatar
Groupe : Membres
Moi, j'utilise une fonction Talus powered :p
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?php
function skip_chars($texte){
    $texte = strip_tags($texte);
    $texte = strtolower($texte);
    //$texte = htmlspecialchars_decode($texte);
    
    /**$texte = str_replace(array('é','è','ê','ë'), 'e', $texte);
    $texte = str_replace(array('à','â','ä','ã'), 'a', $texte);
    $texte = str_replace(array('ô','ò','ö','õ'), 'o', $texte);
    $texte = str_replace(array('ù','ü','µ'), 'u', $texte);
    $texte = str_replace(array('ì','ï','î'), 'i', $texte);
    $texte = str_replace('ç', 'c', $texte);// (accents pas parsés, merci utf8) */ 
    
    $texte = preg_replace('`[^a-z0-9-]+`', '-', $texte);
    $texte = preg_replace('`-{2,}`', '-', $texte);
    $texte = trim($texte, '-');
    
    return $texte;
}
?>


Vous pouvez la retrouver ici ;)

Retour au forum "PHP" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 109 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.1353s (0.1191s)