2010-12-27 3 views
0

J'ai un script php très long pour seulement 1 page-à-dire quelque chose comme:fonctionnement interne de PHP (très long script PHP)

mywebsite.com/page.php?id=99999

J'ai environ 10000-20000 cas de l'ID, chacun avec un paramètres différents. Est-ce que cela ralentira mon site web de manière significative?

C'est-à-dire que ma question correspond vraiment à ce qui se passe lorsque php est exécuté. Le serveur l'exécute-t-il et affiche-t-il les résultats, ou l'ordinateur du client le télécharge-t-il, l'exécute-t-il et affiche-t-il les résultats?

Si c'est le dernier, cela signifie-t-il un temps de chargement vraiment lent? chacun des cas 10000-20000 a environ 20-25 lignes de code après.

grâce, xoxo

+1

Basé sur votre autre question (http://stackoverflow.com/questions/4538294), je vous suggère de lire une introduction à PHP avant de commencer à coder quelque chose dedans.Même si le code que vous produisez sans cela pourrait fonctionner, vous finirez probablement avec un code vraiment mal entretenu. – hangy

+0

PHP est purement serveur. Pensez-vous que tout le monde avec un navigateur sur la planète a PHP installé sur leur ordinateur? –

+0

Qu'est-ce qu'un 'xoxo' –

Répondre

1

un fichier PHP est généralement traitée (interprétées) sur le serveur Web et la sortie est transmise au client.

Si le site Web est lent ou non, cela dépend totalement de ce que fait réellement le script PHP. Cependant, un fichier PHP avec 10000-20000 case sonne vraiment, vraiment mauvais code. Pourtant, il pourrait bien fonctionner pour votre cas (pardonnez le jeu de mots). Tout se résume à quel code est réellement exécuté: Imprimez-vous simplement du texte différent en fonction du id donné ou vous exécutez une opération très coûteuse (par exemple, créer un fichier zip, télécharger des choses, calculer PI à la dernière décimal, ...)?

+0

Skittish Je viens d'imprimer comme 20-25 lignes de code - c'est-à-dire un code différent correspondant à différents identifiants - c'est un formulaire Web. – econclicks

+0

@econclicks aller pour la base de données déjà, idiot –

1

10 000 à 20 000 cas distincts semblent être un cauchemar. Bien que ce soit techniquement possible, j'ai du mal à croire que vos besoins de traitement exigent ce niveau de granularité.

Est-ce que le traitement dans chacun des 10 000 à 20 000 cas est vraiment si différent qu'il a besoin complètement séparé tests et de manutention? N'y a-t-il pas des cas assez semblables pour être traités de la même manière?

Par exemple, si le traitement des cas $x = 5 est quelque chose comme:

echo 5; 

et le traitement des cas $x = 10 est quelque chose comme:

echo 10; 

Ensuite, ceux-ci pourraient être regroupés en un seul test et un seul conducteur:

function dumbEcho($x){ 
    echo $x; 
} 

function isDumbEchoAble($x){ 
    return in_array($x, array(5,10)); 
} 

if (isDumbEchoAble($x)){ 
    dumbEcho($x); 
} 

Pour chaque ensemble structurellement similaire de traitement, vous pouvez créer une fonction isXXXAble() à tester et une fonction XXX() à traiter. [Bien sûr, ce n'est qu'un exemple simple, destiné à démontrer un principe, un concept, pas nécessairement un code que vous pouvez copier/coller dans votre situation actuelle.]

L'essence de la programmation - IMHO - est de trouver ces similitudes structurelles, trouver un paramétrage suffisant pour gérer les cas uniques, puis appliquer ce traitement paramétré à ces cas.

+0

Je voudrais pouvoir upvote votre message deux fois, juste pour la remarque «essence de la programmation». La plupart des gens ici croient que la programmation est comme mettre quelques blocs prêts à l'emploi ensemble, comme dans Lego –

+0

Merci, mec. ;-) –