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  ...  73  74  75  76  77  78  79  ...  97  98  99  100  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  73  74  75  76  77  78  79  ...  97  98  99  100  Suivante
Hors ligne Neoterranos # Posté le 16/03/2008 à 16:29:17
Oh my god, they killed Kenny !
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
Si tu sais pas modifier un array, c'est ton problème.
Malgré tout, je me plie, la solution de Talus, à laquelle je n'avais pas pensé prend deux fois moins de temps que la mienne, 1,8 sec pour 100000 passages contre 3.5 pour la mienne.

Merci Talus, j'ai parlé trop vite.

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne Talus # Posté le 16/03/2008 à 17:14:43
タルス
Avatar
Groupe : Membres
Facon, un callback sera toujours plus lent qu'une simpel regex. Sans compter l'option e, bien sur (:p)
 
Hors ligne Dentuk # Posté le 16/03/2008 à 17:19:05
Yamo...
Avatar
Groupe : Membres
Le (.+?) n'est pas terrible par contre, imaginons que t'aies une classe CSS element_menu ou titre ou autre, suffit de faire <couleur nom="osef element_menu"> et on obtient <span class="couleur_osef element_menu"> ce qui peut occasionner de gros bugs de design.
J'aurai plutôt mis un ([a-z_]+) (à ajuster suivant ce qu'on met dans le css).

Image utilisateur
 
Hors ligne JaKhris # Posté le 16/03/2008 à 17:33:53
Wait & See
Avatar
Groupe : Membres
On peut appliquer deux classes CSS dans la même balise en mettant un espace entre les deux noms de classe ? Si c'est le cas, j'apprends un truc utile. ^^

EDIT : Wahou ça marche ! :p Merci Dentuk. ^^
Édité le 16/03/2008 à 17:35:24 par JaKhris

Mes sites : JAKPRO ~ URPRO ~ page Flickr
XHTML, CSS, JS, PHP, MySQL, Graphics, Music & Video Games : This is living ! =D
 
Hors ligne patouche # Posté le 16/03/2008 à 17:35:52
Avatar
Groupe : Membres
Citation : Dentuk
Le (.+?) n'est pas terrible par contre, imaginons que t'aies une classe CSS element_menu ou titre ou autre, suffit de faire <couleur nom="osef element_menu"> et on obtient <span class="couleur_osef element_menu"> ce qui peut occasionner de gros bugs de design.
J'aurai plutôt mis un ([a-z_]+) (à ajuster suivant ce qu'on met dans le css).


En soit, ça ne change pas grand choses. La personne qui écrit peut te mettre couleur=entete et si tu a une classe de ton CSS couleur_entete le système fonctionnera. Après c'est vraiment pour chipoter mais l'avantage de ton système est d'éviter d'employer plusieurs classe CSS pour cet élément. Tu aurais d'ailleurs pu utiliser ([^ ]) et ça aurait marcher pareil...


Cordialement.


EDIT :
Citation : JaKhris
On peut appliquer deux classes CSS dans la même balise en mettant un espace entre les deux noms de classe ? Si c'est le cas, j'apprends un truc utile. ^^
Oui et c'est comme tu le dis super utile !!! ;)
EDIT : Wahou ça marche ! :p Merci Dentuk. ^^

Oui et comme tu le dis c'est super utile. ;)
Édité le 16/03/2008 à 17:38:52 par patouche

Pensez aussi au petit bouton résolu
Site d'une asso de Jongle sur Cergy >> site en cours
 
Hors ligne Dentuk # Posté le 16/03/2008 à 17:43:14
Yamo...
Avatar
Groupe : Membres
JaKhris > Oui on peut ! (qui a dit Bob le bricoleur ?)

patouche > A priori si tu utilises ce système pour le css tu vas pas mettre d'autres couleur_* que celles autorisées...
Pour le [^ ], je ne vois pas pourquoi autoriser # @ ( ) | et compagnie ça sert à rien.

Image utilisateur
 
Hors ligne shine-neko # Posté le 16/03/2008 à 17:49:05
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
Citation : Neoterranos
Si tu sais pas modifier un array, c'est ton problème.
Malgré tout, je me plie, la solution de Talus, à laquelle je n'avais pas pensé prend deux fois moins de temps que la mienne, 1,8 sec pour 100000 passages contre 3.5 pour la mienne.

Merci Talus, j'ai parlé trop vite.



:euh: si j'étais toi je me cacherais.
je ne parlais de la possibilité de modifier un script mais de pouvoir profiter de pleine puissance du css ;)

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 patouche # Posté le 16/03/2008 à 17:56:22
Avatar
Groupe : Membres
Citation : Dentuk
JaKhris > Oui on peut ! (qui a dit Bob le bricoleur ?)

patouche > A priori si tu utilises ce système pour le css tu vas pas mettre d'autres couleur_* que celles autorisées...
Pour le [^ ], je ne vois pas pourquoi autoriser # @ ( ) | et compagnie ça sert à rien.


Autorisé les # [...] ce n'est pas très important, l'important, c'est juste d'interdire l'espace pour éviter l'utilisation de plusieurs classes CSS sur l'élément.

Sinon, pour les couleurs autorisés, tu peux très bien utilisé couleur_body ou couleur_entete dans ton css. Pourtant, cela ne fais pas parti de tes couleurs autorisés sauf bien sur si tu es très permissif...


Cordialement.

Pensez aussi au petit bouton résolu
Site d'une asso de Jongle sur Cergy >> site en cours
 
Hors ligne Dentuk # Posté le 16/03/2008 à 18:10:37
Yamo...
Avatar
Groupe : Membres
Les guillemets doubles sont importants pour la validité du document (<couleur nom="rouge""">aha je fais tout buger</couleur>).

Faille importante avec le (.+?) :
<couleur nom="orly" onclick="alert('big faille §§');">click moi dessus ahaha §§</couleur>
Ceci passe !

En bref je maintiens : [a-z_]+ est on ne peut plus sécurisé et simple à la fois, et il évite d'avoir à penser à tout (guillemets espaces et surement d'autres trucs que j'oublie).
Pour le couleur_entete, en général on fait plutôt #entete { color: ...; } j'ai jamais fait de trucs dans le genre personnellement enfin bon, si tu le dis.
Édité le 16/03/2008 à 18:12:34 par Dentuk

Image utilisateur
 
Hors ligne Neoterranos # Posté le 16/03/2008 à 18:10:41
Oh my god, they killed Kenny !
Avatar
Groupe : Membres
Citation : shine-neko
Citation : Neoterranos
Si tu sais pas modifier un array, c'est ton problème.
Malgré tout, je me plie, la solution de Talus, à laquelle je n'avais pas pensé prend deux fois moins de temps que la mienne, 1,8 sec pour 100000 passages contre 3.5 pour la mienne.

Merci Talus, j'ai parlé trop vite.



:euh: si j'étais toi je me cacherais.
je ne parlais de la possibilité de modifier un script mais de pouvoir profiter de pleine puissance du css ;)

Dommage, tu n'es pas moi, et la pleine puissance du CSS ici, c'est colorer un texte, désolé, mais ça arrache pas trois pattes à un canard...

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne patouche # Posté le 16/03/2008 à 18:16:38
Avatar
Groupe : Membres
Citation : Dentuk
Faille importante avec le (.+?) :
<couleur nom="orly" onclick="alert('big faille §§');">click moi dessus ahaha §§</couleur>
Ceci passe !

En bref je maintiens : [a-z_]+ est on ne peut plus sécurisé et simple à la fois, et il évite d'avoir à penser à tout (guillemets espaces et surement d'autres trucs que j'oublie).

La dessus, c'est vrai, tu as tout à fait raison !!!...

Pour le entete, c'est juste un exemple mais il est vrai que parfois j'ai des classes de couleurs que j'utilise plusieurs fois et que je n'utilises pas pour un texte. C'est pourquoi je disais ça.


Cordialement

Pensez aussi au petit bouton résolu
Site d'une asso de Jongle sur Cergy >> site en cours
 
Hors ligne shine-neko # Posté le 16/03/2008 à 20:37:30
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
Citation : Neoterranos
Citation : shine-neko
Citation : Neoterranos
Si tu sais pas modifier un array, c'est ton problème.
Malgré tout, je me plie, la solution de Talus, à laquelle je n'avais pas pensé prend deux fois moins de temps que la mienne, 1,8 sec pour 100000 passages contre 3.5 pour la mienne.

Merci Talus, j'ai parlé trop vite.



:euh: si j'étais toi je me cacherais.
je ne parlais de la possibilité de modifier un script mais de pouvoir profiter de pleine puissance du css ;)

Dommage, tu n'es pas moi, et la pleine puissance du CSS ici, c'est colorer un texte, désolé, mais ça arrache pas trois pattes à un canard...


Aller j'en rajoute une couche

red
bleu
green
...
:-° dsl mais ne pourrais pas aller bien loin
alors qu'avec le css :p tu pourras tester toutes sorte de couleurs

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 Bilbax # Posté le 16/03/2008 à 21:22:57
www.bilbax.eu
Avatar
Groupe : Membres
L'avantage du callback c'est qu'on peut utiliser des couleurs hexadécimales plutôt que d'être restreint à une certaine plage de couleurs. :)
Hors ligne Talus # Posté le 16/03/2008 à 21:42:35
タルス
Avatar
Groupe : Membres
Dentuk > Pour la section (des couleur_*), bof, ca affichera en noir. MAis en effet, le [a-zA-Z0-9]+ serait mieux vu :D

Pour la faille, nan, car y'a l'option "?" juste après la capture (dans le cas du (.+?)".
 
Hors ligne Neoterranos # Posté le 16/03/2008 à 22:25:28
Oh my god, they killed Kenny !
Avatar
Groupe : Membres
Citation : Dentuk
Faille importante avec le (.+?) :
<couleur nom="orly" onclick="alert('big faille §§');">click moi dessus ahaha §§</couleur>
Ceci passe !

Faux, tu es censé avoir passé ton texte au htmlspecialchars();

Citation : Bilbax
L'avantage du callback c'est qu'on peut utiliser des couleurs hexadécimales plutôt que d'être restreint à une certaine plage de couleurs. :)

Oui et non, au pire tu rajoutes une ligne :

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. $texte = preg_replace('#&lt;couleur code="([a-fA-F0-9]{6})"&gt;(.+)&lt;/couleur&gt;#isU', '<span style="color: #$1">$2</span>', $texte);
  3. ?>
Édité le 16/03/2008 à 22:27:24 par Neoterranos

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne Dentuk # Posté le 16/03/2008 à 22:32:50
Yamo...
Avatar
Groupe : Membres
Citation : Talus
Dentuk > Pour la section (des couleur_*), bof, ca affichera en noir. MAis en effet, le [a-zA-Z0-9]+ serait mieux vu :D
C'est pas l'affichage en noir qui me dérange mais le fait que ça permette d'utiliser plusieurs class CSS sur ce span, qui peuvent être des éléments spécifiques type .element_menu { float:left; border: truc; etc...} simplement si on met un espace.

Citation : Talus
Pour la faille, nan, car y'a l'option "?" juste après la capture (dans le cas du (.+?)".

Le ? empêche la capture de "> mais pas de blabla" truc="autretruc, j'ai testé :
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. $str = htmlspecialchars('<couleur nom="plop" onclick="alert(\'cémoi §§\');">§§</couleur>', ENT_NOQUOTES);
  3. echo preg_replace('`&lt;couleur nom="(.+?)"&gt;(.+?)&lt;/couleur&gt;`s', '<span class="couleur_$1">$2</span>', $str);
  4. ?>

Résultat en CLI :
Code : Console - Afficher / masquer les numéros de ligne
dentuk@dentuk-laptop:~/tmp$ php a.php
<span class="couleur_plop" onclick="alert('cémoi §§');">§§</span>


Edit : Neoterranos > Sauf que dans l'exemple d'utilisation l'option ENT_NOQUOTES est activée.
Édité le 16/03/2008 à 22:38:39 par Dentuk

Image utilisateur
 
Hors ligne Talus # Posté le 16/03/2008 à 22:47:55
タルス
Avatar
Groupe : Membres
Tiens, tu m'apprends un truc là... J'ai pas l'air con :D
 
Hors ligne Neoterranos # Posté le 16/03/2008 à 23:22:45
Oh my god, they killed Kenny !
Avatar
Groupe : Membres
Citation : Dentuk
Edit : Neoterranos > Sauf que dans l'exemple d'utilisation l'option ENT_NOQUOTES est activée.

Damned, en plus c'est moi qui l'y ai mis et je l'ai oublié...
Mes excuses alors, [a-z] est donc plus approprié.
Édité le 16/03/2008 à 23:23:44 par Neoterranos

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne nath # Posté le 19/03/2008 à 16:26:52
yeeah, rastafari!!!!
Avatar
Groupe : Membres
Bonjour :) , je pense que cette fonction n'a pas encore été présentée...
Elle sert à faire comme si l'option magic_quotes_gcp était désactivée, c'est à dire supprime les slashes avant les doubles quotes et simples quotes des données reçu par formulaires.
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. if(isset($_POST) && !isset($activer_magic_quotes)){
  3.        
  4.         $donnees = $_POST;
  5.         foreach($donnees as $key => $value) {
  6.                 $_POST[$key] = stripslashes($value);
  7.         }
  8.         unset($donnees);
  9. }
  10. ?>

Ce code est plus pratique a utiliser si vous avez une page que vous insérez dans toutes vos pages.
Si vous voulez exceptionnellement sur l'une de vos pages activer magic_quotes_gcp il vous suffit de définir la variable $activer_magic_quotes avant l'appel de la fonction.

Attention! Si vous utilisez ce code, assurez vous d'avoir sécurisé vos formulaires avant!

C'est possible qu'il y ai des optimisations à apporter alors n'hésitez pas! ;)

PS: ça peut marcher aussi avec les variables GET, il suffit de remplacer $_POST par $_GET ^^
 
Hors ligne Bilbax # Posté le 19/03/2008 à 16:36:19
www.bilbax.eu
Avatar
Groupe : Membres
Pourquoi créer une variable $donnees au lieu d'utiliser directement $_POST ? :p .

Sinon :

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. {
  3.     array_walk_recursive($_GET, 'stripslashes');
  4.     array_walk_recursive($_POST, 'stripslashes');
  5.     array_walk_recursive($_SESSION, 'stripslashes');
  6.     array_walk_recursive($_COOKIE, 'stripslashes');
  7. }


EDIT : Merci `Haku pour la remarque ;) .
Édité le 19/03/2008 à 18:23:22 par Bilbax
Hors ligne nath # Posté le 19/03/2008 à 16:41:37
yeeah, rastafari!!!!
Avatar
Groupe : Membres
Mais c'est super cette fonction! ^^

je connaissait pas :-°

Ouai sinon, je sais plus trop pourquoi je suis passé par une $donnees ...
 
Hors ligne shine-neko # Posté le 19/03/2008 à 16:42:58
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
Citation : nath
Mais c'est super cette fonction! ^^

je connaissait pas :-°

Ouai sinon, je sais plus trop pourquoi je suis passé par une $donnees ...


Peut être que tu savais pas :p d'ailleur je fesais pareil que toi avant 2 jour :lol:

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 Michacke # Posté le 19/03/2008 à 16:44:18
Je suis l'ombre de moi même !
Avatar
Groupe : Bannis
http://www.siteduzero.com/forum-83-253274-p1-astuce-htaccess.html

Bannis sous demande. Supression => trop délicat alors, j'ai été bannis avec mon consentement ;) .
 
Hors ligne anonyme # Posté le 19/03/2008 à 16:44:57
Groupe :
Citation : Bilbax
Pourquoi créer une variable $donnees au lieu d'utiliser directement $_POST ? :p .

Sinon :

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. {
  3.     array_walk($_GET, 'stripslashes');
  4.     array_walk($_POST, 'stripslashes');
  5.     array_walk($_SESSION, 'stripslashes');
  6.     array_walk($_COOKIE, 'stripslashes');
  7. }

array_walk_recursive() c'est encore mieux.
Hors ligne Lynix # Posté le 21/03/2008 à 22:34:57
Graphiste 3D
Avatar
Groupe : Membres
Je ne voudrais pas manquer de respect à powange, mais sa liste de fonctions et astuces c'est du n'importe quoi
J'ai vu pleins d'erreurs, par exemple il donne une fonction, et il n'utilise pas la même dans l'exemple, ou alors le code de l'exemple qui est erroné, aussi des alternatives aux fonctions manquantes :colere2:

Il faudrait quelqu'un de compétent en php (je ne veux surtout pas insulter powange) pour refaire la liste

Je me proposerais si personne ne veux le faire mais je trouve que c'est nécessaire
Édité le 21/03/2008 à 22:42:27 par Lynix

Utopy Bientot :D
 
Hors ligne Jeremie78 # Posté le 22/03/2008 à 02:37:14
Powered by GNU/Linux
Groupe : Membres
Envoie lui un MP ;)

Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site, générateur de bannières, de userbars, ...
 
Hors ligne Tracker # Posté le 22/03/2008 à 09:22:10
Avatar
Groupe : Membres
Citation : `Haku
Citation : Bilbax
Pourquoi créer une variable $donnees au lieu d'utiliser directement $_POST ? :p .

Sinon :

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. {
  3.     array_walk($_GET, 'stripslashes');
  4.     array_walk($_POST, 'stripslashes');
  5.     array_walk($_SESSION, 'stripslashes');
  6.     array_walk($_COOKIE, 'stripslashes');
  7. }

array_walk_recursive() c'est encore mieux.


Salut,

C'est magic_quotes_GPC et pas magic_quotes_GPSC, si tu stripslashes $_SESSION tu perdras au fur et à mesure tous les \ contenus dans tes variables de session.


Tracker.

Un peu de lecture: PHP // MySQL // JavaScript // w3schools // SQL
 
Hors ligne Lynix # Posté le 23/03/2008 à 01:55:12
Graphiste 3D
Avatar
Groupe : Membres
J'ai déjà fait une fonction pour traiter les magic_quote

http://www.siteduzero.com/forum-83-17384-2183303-vos-fonctions-ou-astuces.html#r2183303

Utopy Bientot :D
 
Hors ligne strucky # Posté le 23/03/2008 à 11:19:03
Jamais content !
Avatar
Modérateurs
Citation : Lynix
Je ne voudrais pas manquer de respect à powange, mais sa liste de fonctions et astuces c'est du n'importe quoi
J'ai vu pleins d'erreurs, par exemple il donne une fonction, et il n'utilise pas la même dans l'exemple, ou alors le code de l'exemple qui est erroné, aussi des alternatives aux fonctions manquantes :colere2:


Au lieu de râler, si tu précisais ce qui te semble erroné :-°

Citation : Lynix
Il faudrait quelqu'un de compétent en php (je ne veux surtout pas insulter powange) pour refaire la liste

Je me proposerais si personne ne veux le faire mais je trouve que c'est nécessaire


Non, désolé, on va pas refaire un sujet à chaque fois, les corrections se feront dans celui-ci.

Hors ligne Lynix # Posté le 23/03/2008 à 12:26:29
Graphiste 3D
Avatar
Groupe : Membres
Citation : strucky
Au lieu de râler, si tu précisais ce qui te semble erroné :-°

Je l'ai marqué, et ça s'applique a peu près partout dans sa liste
Citation : strucky
Non, désolé, on va pas refaire un sujet à chaque fois, les corrections se feront dans celui-ci.

Faudrait tout refaire en fait :-°

Utopy Bientot :D
 
Hors ligne JeromeJ # Posté le 30/03/2008 à 17:42:21
Avatar
Groupe : Membres
Désolé de reprendre le sujet que maintenant ...=S

Citation : DHKold
On peut aisément faire plus simple:

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. function array_map3($callback){
  3.     $args = func_get_args();
  4.     array_shift($args);
  5.     $max = max(array_map('count',$args));
  6.     foreach($args as $k=>$v) $args[$k] = array_pad(is_array($v) ? $v : array(),$max,is_array($v) ? array_pop($v) : $v);
  7.     array_unshift($args,$callback);
  8.     return call_user_func_array('array_map',$args);
  9. }
  10. ?>


Et si vraiment tu veux utiliser tes MIN et MAX machin, tu utilise un array_slice() :)
Euh c'est pas un peu lourd d'utiliser autant d'array, jtrouve que si moi, au lieu d'un big array, tu en aurais autant quil y a d'arguments... j'y avais pensé figure-toi.

Citation : Dentuk
array_map a été faite pour pouvoir être utilisée avec des fonctions utilisateur : pour moi c'est beaucoup plus clair et simple de faire ça (par exemple):
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. function machin2chose($chaine) {
  3.     return str_replace('machin', 'chose', $chaine);
  4. }
  5. print_r(array_map('machin2chose', $tableauDeChaines));
  6. ?>
Pas mal =) J'y avais pas pensé... mais ça oblige à créer des fonctions utilisateurs... ma solution non =o








Secret (cliquez pour afficher)
Ce que je maitrise actuellement: XHTML, CSS, PHP, Action Script 2 et 3, JavaScript, SQL, Python, et un peu de C, C++ et d'erl
 

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 101 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.1133s (0.0975s)