[php] Is dit de snelste manier?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
PHP:
1
2
3
4
5
6
7
$content = str_replace("%ImageCatThumb%",ImageCat($catid,"0","thumb"),$content);
$content = str_replace("%ImageCatThumb%",ImageCat($catid,"0","thumb"),$content);
$content = str_replace("%ImageCatRightThumb%",ImageCat($catid,"right","thumb"),$content);
$content = str_replace("%ImageCatLeftThumb%",ImageCat($catid,"left","thumb"),$content);
$content = str_replace("%ImageCatRightFull%",ImageCat($catid,"right","full"),$content);
$content = str_replace("%ImageCatLeftFull%",ImageCat($catid,"left","full"),$content);
$content = str_replace("%ImageThumbSubCat%",ImageThumbSubCat($catid),$content);

Ik heb bovenstaande code gemaakt om flexibel met plaatjes te kunnen werken.
Zo heb ik een aantal functies gemaakt die voor mij belangrijk zijn. Nu maak ik in de content %tags% aan en laat die vervangen bij het eruit halen van de content. Is dit snel of niet? Volgens mij niet namelijk. Nu is mijn vraag hoe kan ik dit sneller maken. Moet ik dan bijv een extra veld in de database aanmaken. 1 met geparste content en 1 niet? Zodat ik het makkelijk kan bewerken. Ik echo de reeds geparste content naar de gebruiker etc..

Nu doe ik het parsen nog als een bezoeker de gegevens ophaalt.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ehm, je bent ervan op de hoogte dat str_replace() arrays als needle en haystack kan gebruiken? En verder, dit lijkt me nogal een template systeem, en als je voor snelheid gaat, dan kies je daar niet voor. PHP kan dat zelf gewoon veel sneller.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Hoe bedoel je dat dat php het veel sneller kan?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Wat denk je dat sneller is: zelf variabelen in een 'template' gaan parsen d.m.v. str_replace(), of gewoon PHP files met PHP-variabelen gebruiken als soort van templates? ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • NetRipper
  • Registratie: Mei 2000
  • Laatst online: 20-07 20:29
Daarnaast is het volgende sneller dan meerdere keren str_replace() aan te roepen:
code:
1
2
3
4
5
6
// Provides: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy  = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);


preg_replace() is in princiepe nog sneller, maar lastiger in gebruik. zie www.php.net en google voor meer voorbeelden.

edit: bovenstaande is een quote uit de uitleg van de functie op http://nl.php.net/manual/en/function.str-replace.php

[ Voor 18% gewijzigd door NetRipper op 23-10-2004 01:27 ]

Github - Tikkie! - NED-Clan - Volvo EX30 SMSR Plus


Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Hoe doe jij dit: "PHP files met PHP-variabelen gebruiken als soort van templates" dan?

En ik heb ze nu in een array staan! Maar hoe kan het nog sneller dan? En is het wel aanzienlijk sneller als ik het anders zou doen?

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
NetRipper schreef op 23 oktober 2004 @ 01:27:

preg_replace() is in principe nog sneller, maar lastiger in gebruik. zie www.php.net en google voor meer voorbeelden.
Totale nonsens. str_replace is zeer zeker sneller dan preg_replace.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

NetRipper schreef op 23 oktober 2004 @ 01:27:
Daarnaast is het volgende sneller dan meerdere keren str_replace() aan te roepen:
Spuit elf. :P
NetRipper schreef op 23 oktober 2004 @ 01:27:
preg_replace() is in princiepe nog sneller, maar lastiger in gebruik. zie www.php.net en google voor meer voorbeelden.
Zoals Grijze Vos al zegt: complete onzin. Is ook logisch te redeneren. Een regular expressie moet compleet geparst worden op variabelen en character classes en dergelijke, terwijl een gewone string replace rechttoe, rechtaan is.

@RSD: misschien moet je eens in de search kijken en zoeken naar 'templates in php'. Je vindt waarschijnlijk tientallen topics waarin je steeds weer verteld zal worden dat het beter is om gewoon PHP je template engine te laten zijn, dan wanneer je een aparte engine ertussen script. Maar je snelheidswinst zal zo geweldig groot ook niet zijn.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Je kan in je templates natuurlijk ook iets als dit plaatsen:
HTML:
1
plaatje: [img]"<?=ImageCat($catid,"right","thumb");?>"[/img] staat hier.

Dat is nog veel sneller.

Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

Hoe dynamisch is je pagina? Als je het echt snel wil dan laat je je template parser met een scheduler static html als file uitpoepen. Dat is veruit het snelste.

Acties:
  • 0 Henk 'm!

Verwijderd

zou daar smarty voor gebruiken, die maakt van je template een php file (met echo van de var's) en kan bovendien ook nog cachen naar html.

Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Ik heb nu een file template.php die include ik op elke pagina. In deze template.php heb ik 3 variabelen namelijk $body, $menu en $nav.

Op elke pagina laat ik nu $body, $menu en $nav genereren. Om wat vrijheid te krijgen mbt tot het plaatsen van plaatjes in de body variabele. Wil ik in de body variabele op bepaalde plaatsen mbv bovenstaande codes, html laten plaatsen die de plaatjes op de juiste manier plaatst.

De variabele $body wordt gevuld met gegevens uit de database. Nu wil ik in deze gevens op 4 verschillende manieren plaatjes kunne plaatsen. Bijv thumbs van subcategorien, thumbs van de daadwerkelijke file etc.. Dit doe ik door in mijn content bijv ergens de text {ImageThumbSubCat} te plaatsen. Zodra op de pagina deze gegevens staan, dan wordt een bepaalde functie aangeroepen die de plaatjes ophaalt en deze wordt ipv die text geplaatst.

Voorbeeld staat hier:

http://srv34.flexwebhosting.nl/~admin78/?catid=6

[ Voor 39% gewijzigd door RSD op 23-10-2004 13:17 ]

Pagina: 1