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  ...  82  83  84  85  86  87  88  ...  93  94  95  96  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  82  83  84  85  86  87  88  ...  93  94  95  96  Suivante
Hors ligne anonyme # Posté le 10/05/2008 à 01:25:26
Groupe :
Reprise du dernier message de la page précédente :
Et ce lien montre une fois de plus que les bench ne valent rien du tout !
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<?php

$plouf = '';

$a = microtime(true);
for($i = 0; $i < 10000; $i++)
    $plouf = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
echo microtime(true)-$a;

$plouf = '';
echo '<br />';

$a = microtime(true);
for($i = 0; $i < 10000; $i++)
    $plouf = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
echo microtime(true)-$a;

?>

Sortie :
Code : Console
0.0042707920074463
0.0042960643768311
==
0.0044081211090088
0.0072910785675049
== 
0.004396915435791
0.0044100284576416
==
0.0079131126403809
0.004410982131958
==
0.0060241222381592
0.0045130252838135
==
0.0046100616455078
0.0043339729309082
==
0.0044269561767578
0.0043330192565918
==
0.0043661594390869
0.0045909881591797
==
0.0043931007385254
0.0046567916870117

(win vista sp1, php5.2.5, la flemme de dire le reste)
Bref, c'est du pareil au même. Et la longueur de la chaîne ne semble influencer en rien (avec 30 000 caractères, c'est toujours pareil).

J'en conclurais donc que tant qu'il n'y a pas d'interprétation de variables, il n'y a aucune différence. Et c'est bien pour ça que je t'ai demandé si c'était un test général ou particularisé.
Et comme il n' y a aucune interprétation de variables dans les "" dans son code, ' ou ", aucune importance on dirait.
Hors ligne Lynix # Posté le 10/05/2008 à 09:07:31
Graphiste 3D
Avatar
Groupe : Membres
Quand je réalise ton test, j'ai toujours les ' qui prennent moins de temps,
j'ai aussi fais le test du site, pareil
A tous les coups,
Et en php4, tu gagnes énormément de temps avec les '

Conclusion?
 
Hors ligne biohazard2 # Posté le 10/05/2008 à 09:28:07
Born to be Swiss
Avatar
Groupe : Membres
En PHP 5, tu ne gagnes presque plus de temps avec les guillemets simple. http://m-fernandez.developpez.com/articles/php/bench/

Conclusion?

Ton affirmation est fausse car incomplète.

Edit (pour en-dessous) : Bien sur, j'ai pas dis le contraire, j'utilise aussi les guillemets simples.
Édité le 10/05/2008 à 09:34:32 par biohazard2

Avis aux américains : Non, la Suisse n'est pas sous Hitler et oui, nous avons l'eau courante.
Avis aux français : Non, Genève n'est pas française et ne compte pas 7 millions d'habitants.
Franco-Suisse valaisan naturalisé genevois.
 
Hors ligne Lynix # Posté le 10/05/2008 à 09:29:55
Graphiste 3D
Avatar
Groupe : Membres
Tests en php 5 : Très peu de temps gagné
Tests en php 4 : 4x plus rapides

Conclusion : Vive les '
Même si c'est pour gagner un peu de temps, et il y a ceux qui sont en php4 encore
 
Hors ligne Artefact2 # Posté le 10/05/2008 à 09:32:01
C'est toi le bouc !
Avatar
Groupe : Membres
Citation : biohazard2
En PHP 5, tu ne gagnes presque plus de temps avec les guillemets simple. http://m-fernandez.developpez.com/articles/php/bench/

Conclusion?

Ton affirmation est fausse car incomplète.


De toute façon, utiliser les simple quotes est une habitude à prendre. On a rarement besoin de parser on-the-fly les variables dans des strings. Personnellement, je ne m'en suis jamais servi, je préfère concaténer.

Image utilisateur
Mes tutoriels : Bien utiliser les fonctions de hachage / La 2D en C# / Utilisez les bases de données dans vos programmes C#

"Imaginez un monde ou chacun est libre de s'exprimer à tout sujet..."
Venez tous sur Freenet 0.7 ! Comment ? Pourquoi ?
 
Hors ligne biohazard2 # Posté le 10/05/2008 à 09:38:38
Born to be Swiss
Avatar
Groupe : Membres
Bien sur, je n'ai jamais dis le contraire. Seulement, il ne faut pas croire qu'une des façons est plus rapide que l'autre (en PHP5 en tout cas).

Avis aux américains : Non, la Suisse n'est pas sous Hitler et oui, nous avons l'eau courante.
Avis aux français : Non, Genève n'est pas française et ne compte pas 7 millions d'habitants.
Franco-Suisse valaisan naturalisé genevois.
 
Hors ligne anonyme # Posté le 10/05/2008 à 13:47:50
Groupe :
Citation : Lynix
Quand je réalise ton test, j'ai toujours les ' qui prennent moins de temps,
j'ai aussi fais le test du site, pareil
A tous les coups,
Et en php4, tu gagnes énormément de temps avec les '

Conclusion?

Bah conclusion, les benchs en PHP ça ne vaut rien.
Les résultats varient pour tout et n'importe quoi. Il faut donc faire le bench sur la machine de production si on veut que le résultat soit utilisable.

Et pour cette histoire de ' ou de ", je suis l'avis de je sais plus quel article : privilégions la lisibilité à quelque micro-chiures de secondes.
Hors ligne TimeSplitters # Posté le 10/05/2008 à 21:04:19
Avatar
Groupe : Membres
Citation : `Haku
Et pour cette histoire de ' ou de ", je suis l'avis de je sais plus quel article : privilégions la lisibilité à quelque micro-chiures de secondes.

Je ne vois pas en quoi les double quotes sont plus lisibles que les simples. Tu parles de généralisation et de particularisation mais toi-même tu parles là de ton cas particulier.

Des développeurs par ci et des graphistes par là, sans oublier les recruteurs (porteurs de projets) ! | TimeSplitters Games :)
 
Hors ligne Savageman # Posté le 10/05/2008 à 21:07:28
Insa : If inside
Avatar
Groupe : Membres
Ca dépend des fois TimeSplitters...

Code : PHP
1
2
<?php
echo 'Une chaine'."\n\n";

est moins lisible que :
Code : PHP
1
2
<?php
echo "Une chaine\n\n";

Rendez votre code plus compréhensible : utilisez les constantes !
Image utilisateur
 
Hors ligne anonyme # Posté le 10/05/2008 à 21:13:00
Groupe :
Tout à fait. Et d'ailleurs TimeSplitter, ai-je dit que les guillemets étaient plus lisible que les apostrophes ?
Pas du tout, j'ai dit d'utiliser le plus lisible. N'en citant pas, ça sous-entend qu'il n'y en a pas. Et s'il n'y en a pas, c'est que ça dépend des cas.
Hors ligne robocop # Posté le 11/05/2008 à 19:51:39
Avatar
Groupe : Membres

Fonction pour générer un nom intelligent et unique d'image



Je me suis rendu compte que trop souvent, pour générer un nom d'image unique, on se basait sur le timstamp ou sur uniquid(), de façon à être certain que le nom de l'image soit bien unique.

L'inconvéniant de ce problème c'est que le nom de l'image générer est très long, et inioble à regardé.
Ayant pitié des gens qui enregistres les images sur leur ordinateur, et pour améliorer la position de mes images sur google, j'ai développé très rapidement une petite fonction :

Code : PHP
1
2
3
4
5
6
7
8
9
<?php
function get_uniquid_name($name_img, $extension, $folder_img, $i=0)
	{
		$name = echapeUrl($name_img);
		if(file_exists($folder_img.$name.$i.'-robotix-schema.'.$extension)) return get_uniquid_name($name_img, $extension, $folder_img, $i=$i+1);
		elseif(empty($i)) return $name.'-robotix-schema.'.$extension;
		else return $name.$i.'-robotix-schema.'.$extension;
	}
?>


Exemple d'utilisation :
<?php echo get_uniquid_name('logo', 'jpg', 'images/'); ?> , ce qui peut donner logo-robotix-schema.jpg, logo1-robotix-schema.jpg, logo2-robotix-schema.jpg, etc. en fonction de la disponibilité de l'image.


De cette façon, le nom de l'image est simple, et unique.
 
Hors ligne Lynix # Posté le 13/05/2008 à 23:15:10
Graphiste 3D
Avatar
Groupe : Membres
Citation : `Haku
Et pour cette histoire de ' ou de ", je suis l'avis de je sais plus quel article : privilégions la lisibilité à quelque micro-chiures de secondes.

N'oublie pas ceux qui sont encore en php4
Et les "micro-chiures de secondes" sont essentielles dans mon cas, sachant que je fais un projet portable, donc soit php4 soit php5

Maintenant si t'es en php5 et que t'es sur d'y rester, fais comme tu veux, perdre 3 millième de secondes ne va pas t'empêcher de dormir c'est vrai.

Mais en php4, tu gagnes beaucoup plus de temps.

Moi je me complique pas la vie, je me fiche complètement d'avoir des \ partout, je veux utiliser la meilleure solution.
Et je pense que, comme cité plus haut, les quotes sont une habitude a prendre,
 
Hors ligne anonyme # Posté le 14/05/2008 à 00:07:09
Groupe :
Tu en connais encore beaucoup qui tournent avec PHP4 ?
Franchement, quel hébergeur sérieux tourne sans PHP5 (par défaut ou pas) ?
D'autant plus que le développement de PHP4 a été abandonné depuis des mois.

Si tu veux faire des trucs "portable", tu vas devoir te priver de biens des choses ! Tout ce qu'apporte PHP5 en fait. PHP4 est une branche qui a été très chouette, mais c'est fini, faut l'oublier et penser à 5.3 et 6.

A vrai dire, perdre 3 millième de seconde m'ennuierait énormément. Sauf que pour perdre 3 millième de seconde, faut quand même que j'utilise des dizaines de milliers de chaînes de caractères. Or, c'est rarement le cas, non ?

En pratique, la différence entre les apostrophe et les guillemets est tellement petite que ça ne vaut même pas la peine de l'évoquer. Débattre sur A est mieux que B, c'est simplement de la masturbation intellectuelle.

Ca ne te dérange peut-être pas de devoir échapper pleins de trucs, mais il y en a que ça dérange. Et d'après ce que j'ai pu en voir et contrairement à ce que tu sembles penser, on préfère généralement un code plus facile à maintenir à un code qui permet de gagner un temps non-significatif mais qui est moins lisible.

Et je ne vois pas pourquoi les "quotes" sont une bonnes habitudes à prendre. C'est ta façon de penser.
Hors ligne Dentuk # Posté le 14/05/2008 à 00:37:19
Yamo...
Avatar
Groupe : Membres
Citation : Lynix
Moi je me complique pas la vie [...]
Ben, si, justement. :p

Signature en cours de révision.
 
Hors ligne Seeme # Posté le 14/05/2008 à 10:18:03
Gnap!
Avatar
Modérateurs
Bon, ça suffit maintenant...

Vous avez des bench et des comparatifs entre les techniques et les versions de PHP écris par des gens compétents sur le net.

Donc maintenant, on reviens sur le sujet.
 
Hors ligne Lynix # Posté le 14/05/2008 à 15:36:26
Graphiste 3D
Avatar
Groupe : Membres
Faut vraiment qu'il se calme, être sur la défensive et être aussi aggressif ...

Sinon tout a été dis

Y'a quelqu'un qui a pas un moteur de bbcode très optimisé?
 
Hors ligne robocop # Posté le 14/05/2008 à 16:00:33
Avatar
Groupe : Membres
Un moteur de bbcode :-° ?
Édité le 14/05/2008 à 16:00:49 par robocop
 
Hors ligne anonyme # Posté le 14/05/2008 à 16:13:13
Groupe :
Citation : Lynix
Faut vraiment qu'il se calme, être sur la défensive et être aussi aggressif ...

Et où ai-je été aggressif ?
Si tu as quelque chose à redire sur mon comportement, dis-le moi en face (oui, je sais, sur le net, difficile, ça veut dire "par mp") au lieu de te cacher derrière un modérateur. (et non,ces mots n'ont rien d'aggressif)
Hors ligne Lynix # Posté le 14/05/2008 à 16:21:58
Graphiste 3D
Avatar
Groupe : Membres
Tu as été aggressif un peu partout, dès que quelqu'un n'est pas d'accord avec toi, tu mords

Ensuite, je ne me cache pas derrière un modérateur (Et si ces mots sont aggressifs, désolé)

D'ailleurs le modérateur en question va se facher ...
 
Hors ligne Cortexd # Posté le 14/05/2008 à 16:31:28
Maouunnwww !
Avatar
Groupe : Membres
Citation : Lynix
Y'a quelqu'un qui a pas un moteur de bbcode très optimisé?

utilise donc l'extension PECL bbcode

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


 
Hors ligne Lynix # Posté le 14/05/2008 à 16:33:03
Graphiste 3D
Avatar
Groupe : Membres
Je n'ai pas accès au coeur de php sur mon hébergement.
Sinon je cherche un moteur comme celui du site du zéro, avec des attributs et tout

EDIT : Je viens de me rendre compte qu'il n'y a pas besoin du coeur de php pour le PECL, mais je cherche quelques chose avec des attributs
Édité le 14/05/2008 à 16:36:38 par Lynix
 
Hors ligne shine-neko # Posté le 14/05/2008 à 16:37:28
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
Citation : Lynix
Je n'ai pas accès au coeur de php sur mon hébergement.
Sinon je cherche un moteur comme celui du site du zéro, avec des attributs et tout

EDIT : Je viens de me rendre compte qu'il n'y a pas besoin du coeur de php pour le PECL, mais je cherche quelques chose avec des attributs


Je me souvient que il y'avais un Zero qui avais en avais coder un quelque part sur le forum

La recherche et ton ami ;)

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 Lynix # Posté le 14/05/2008 à 16:45:24
Graphiste 3D
Avatar
Groupe : Membres
Oui j'ai vu ce moteur, il y a quelques pages sur ce topic, mais il n'est pas très optimisé :/
 
Hors ligne shine-neko # Posté le 14/05/2008 à 17:04:20
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
C'est le quel que tu as vu ? passe le lien ^^

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 Lynix # Posté le 14/05/2008 à 17:13:28
Graphiste 3D
Avatar
Groupe : Membres
Hors ligne shine-neko # Posté le 14/05/2008 à 18:08:54
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
Ah ouais bah moi c'est pas du tout de celle que je te parle ^^

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 Lynix # Posté le 14/05/2008 à 18:32:04
Graphiste 3D
Avatar
Groupe : Membres
Tu parles de laquelle?
 
Hors ligne Corentin_ # Posté le 14/05/2008 à 19:15:37
Avatar
Groupe : Membres
Peut-être celui-ci :
http://www.siteduzero.com/forum-83-301 [...] fi-zform.html

Etudiant en informatique.
Mac user.

 
Hors ligne Sargeros # Posté le 14/05/2008 à 22:46:55
Avatar
Groupe : Membres
Hors ligne shine-neko # Posté le 14/05/2008 à 22:56:40
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
Ah bah voila celui de Vincent a l'air bien a test :)

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 17/05/2008 à 14:27:27
www.bilbax.eu
Avatar
Groupe : Membres
Une petite fonction de dév. pour connaitre aisément la valeur d'une variable sous cette forme :

Image utilisateur


Code :

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
<?php
function dp($var, $return = false, $sub = 0)
{
	if($sub == 0) $r = '<pre style="border:1px solid #e3af43;background-color:#f8edd5;padding:10px;overflow:auto;">';
	else $r = '';
	
	$type = gettype($var);
	if($type == 'NULL')
		$r .= '<em style="color:#0000a0;font-weight:bold;">NULL</em>';
	elseif($type == 'integer')
		$r .= '<span style="color:red;font-weight:bold;">'.$var.'</span>';
	elseif($type == 'double')
		$r .= '<span style="color:#e8008d;font-weight:bold;">'.$var.'</span>';
	elseif($type == 'string')
		$r .= '<span style="color:#e84a00;">\''.$var.'\'</span>';
	elseif($type == 'array')
	{
		$r .= 'Tableau ('.count($var).')'."\r\n".str_repeat("\t", $sub).'{'."\r\n";
		foreach($var As $k => $e)
			$r .= str_repeat("\t", $sub+1).'['.dp($k, true, $sub+1).'] =&gt; '.dp($e, true, $sub+1)."\r\n";
		$r .= str_repeat("\t", $sub).'}';
	}
	elseif($type == 'object')
	{
		$r .= 'Objet « <strong>'.get_class($var).'</strong> »'."\r\n".str_repeat("\t", $sub).'{'."\r\n";
		$prop = get_object_vars($var);
		foreach($prop As $name => $val)
			$r .= str_repeat("\t", $sub+1).'<strong>'.$name.'</strong> =&gt; '.dp($val, true, $sub+1)."\r\n";
		$r .= str_repeat("\t", $sub).'}';
	}
	else
		$r .= 'Variable de type <strong>'.$type.'</strong>.';
	
	if($sub == 0) $r .= '</pre>';
	if($return) return $r;
	echo $r;
}

/////////////////// TEST

class Obj
{
	public $truc = 'ZzZ';
	public $super = Array('lol', 77.6 => NULL);
	public $na;
}
$monObj = new Obj();
$a = Array('Blabla', 'hihi', 'caca' => Array(NULL, 0.1, 'AAA', $monObj), 14, 0.8, NULL, Array('prout', 24));

dp($a);
?>


Concept repris de la fonction de Talus ^^ .

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 82 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.2607s (0.2453s)