Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum.
Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden.
Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
PHP traag
Ik heb het probleem dat php blijkbaar een nogal trage taal is in uitvoering.
Sommige simpele funkties kosten nogal wat tijd, waardoor de site te traag wordt (de host klaagt erover dat de site zijn server opblaast, doordat die oververhit raakt).
Zijn er snellere alternatieven voor scripting. Of is het mogelijk om php via bepaalde stappen sneller te laten uitvoeren.
Het vullen van bv. 20 variabelen kan meer als 200ms kosten, terwijl ze gevuld worden vanuit een record op de volgende manier.
De aanroep is dan bv. VenueInfo_Value (17,"naam");
Sommige simpele funkties kosten nogal wat tijd, waardoor de site te traag wordt (de host klaagt erover dat de site zijn server opblaast, doordat die oververhit raakt).
Zijn er snellere alternatieven voor scripting. Of is het mogelijk om php via bepaalde stappen sneller te laten uitvoeren.
Het vullen van bv. 20 variabelen kan meer als 200ms kosten, terwijl ze gevuld worden vanuit een record op de volgende manier.
function VenueInfo_Value($Venue_ID,$Value_Name)
{
require info_RequirePath ("Venue");
$Found_Value = "";
if($Venue_ID>0)
{
If(isset($info_Venue[$Venue_ID]))
{
$Found_Value = $info_Venue[$Venue_ID][$Value_Name];
};
};
return $Found_Value;
};
De aanroep is dan bv. VenueInfo_Value (17,"naam");
Login of Registreer om te reageren.
Reacties
Waarom een check op hoger dan 0 ?
Wat is $info_Venue ?
Kan mij niet voorstellen dat deze functie iets opblaast.
Er zijn nu 209 entries.
De range check is om php foutmeldingen te voorkomen.
Voor zover ik de functie begrijp, wil je gewoon kijken (of en) welke info er in een bepaalde array staat?
Dat kan makkelijker door te kijken of een bepaalde key wel bestaat -> array_key_exists()
En als die true geeft, haal je gewoon de rest op adhv die key?
Edit, oei zoveel info in een array, waarom sla je het niet op in een database?
Als er, zoals je aangeeft, meer dan 17 ID's zijn en deze allemaal deze data in een array hebben staan dan is dit inderdaad de reden dat je php scripts heel traag worden.
Ik zou dan ook gaan voor een database en if ID exists display data, else ID isent available, of zo iets
En de funktie haalt niet op of de waarde bestaat, maar de waarde, indien die bestaat.
Dus VenueInfo_Value (2,"fullnaam") geeft terug "The Grosvenor Victoria Casino"
Dus VenueInfo_Value (1,"shortnaam") geeft terug "Rio"
Dus VenueInfo_Value (2012152,"ongeldi") geeft terug "" (empty string).
De code hierachter kan er dus op vertrouwen dat er de waarde terugkomt zonder foutmelding, ook bij ongeldige input.
Jij wilt dat er een multiarray doorzocht wordt terwijl je bij een database direct naar het juiste id gesprongen wordt.
Waarom geen database, wat is hier de reden van ?
Eerst had ik:
Ik zocht het ff op en vond dat je ook dit kan doen:
Het scheelt heel veel qua PHP snelheid. Maar misschien kwam dat ook door XAMPP/Windows of iets.
(Excuses als ik verkeerd advies geef)
Als je de request rechtstreeks doet op 127.0.0.1 dan vind er dus geen "loopback" plaats zoals met het host bestand maar zal de request direct via de TCP/IP stack naar het ip gestuurd worden. Daar zit het snelheidsverschil in