9 nuttige PHP functies en, je moet weten,,,,,,,,,, 21, delen, delen van,,,,,, het netwerk van maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen.,,, twee keer per maand, moeten we opnieuw een aantal van onze lezers favoriete artikelen in de geschiedenis van Nettuts+.,, gebruik maken van de persoonlijke beschermingsmiddelen, na al die jaren dat we per ongeluk de functies en kenmerken, dat weten we niet.Deze is heel nuttig, maar niet volledig zijn gebruikt.Weet je nog, ik heb negen zeer nuttig voor de PHP functies en je moet bekend zijn met de lijst,.,,,, 1.En een aantal functies, zoals u waarschijnlijk al weet, PHP het toestaan van het gebruik van facultatieve parameters omschreven functie.Maar er is ook een functie van de toegestane parameters volkomen willekeurige nummers, ten eerste, dit is een facultatieve parameter zijn slechts voorbeelden: 2 facultatieve parameters foo /functie ($arg1 = ", $2 =") (ECHO "arg1:$arg1 n" ECHO "; 2:$2 n" foo;} Hallo, de wereld "); 1 /print: arg1: hallo wereld * /foo (); * drukken: arg1:2:* /, nu, laten we eens kijken hoe de oprichting van een functie, accepteren dat een aantal parameters.Deze keer zullen we het func_get_args (): de lijst van parameters, /is, is de functie van de lege foo () {///////de terugkeer van alle parameters die func_get_args sprake - $= (); voor (sprake van $k = > en V) (ECHO "Prima." (K + 1). ". $v n";}} foo (* * * * * * * *); drukken wat /foo ("hallo"); * drukken arg1: Hallo * /foo (hallo "," de wereld "," en "); 1 /arg1: Hallo drukken: de ARG3:* /,, 2.Het gebruik van documenten () dan vinden, veel PHP functie van een lange en namen.Het kan echter het woord tenzij je al bekend zijn, is het moeilijk om te weten de naam van de functie van elders in de grijze), zie het als een krachtiger versie van de scandir (is).Het kan dat je zoektocht bestanden door het gebruik van patterns., krijgen alle dossiers $files = ///////PHP Glob ('*.php'); print_r ($files); Alexander, /* produktie - ([0] => phptest.php [1] => pi.php [2] [3] => post_output.php => test.php) *, kan je met deze soorten halen. ///////- dossier. Alle bestanden en dossiers $files PHP txt = dan ('*.{php, txt}', GLOB_BRACE); print_r ($files); Alexander, /* produktie - ([0] => phptest.php [1] => pi.php [2] [3] => post_output.php => test.php [4] [5] => logboek. Txt => test.txt) *, de dat de bestanden kan eigenlijk worden terug. A - weg, depending op uw vraag:, $files = dan ('../images/a*.jpg'); print_r ($files); /*.Ziet eruit als: - ([0] = > /Images /apple.jpg [1] = > /Images /art.jpg) * /, als je wilt dat elk dossier volledig weg, bel je realpath () de waarde: $= dan ("documenten /Images /* JPG"); ///////de functie van toepassing op alle elementen van het dossier array_map ('realpath, voor $documenten); print_r ($documenten); de produktie lijkt op: - * ([0] = > c: \\ \\ \\ apple.jpg wamp WWW beeld [1] = > c: \\ \\ \\ art.jpg wamp afbeelding) * /,, 3.Geheugen gebruik van informatie, met inachtneming van de herinnering van je script gebruikt, kun je je beter van de optimalisering van de code, PHP een vuilnisman en een zeer complex geheugen manager.Het geheugen van je script.In een van de in het kader van de uitvoering van het script, kan op en neer rennen.Toegang tot de huidige geheugen gebruiken, kunnen we gebruik maken van memory_get_usage () functie, en kan op elk moment het hoogste bedrag van het geheugen, kunnen we memory_get_peak_usage () functies, in navolging van de "eerste" (). Memory_get_usage. "Normaal" drukken; eerste: 361400 bytes /* * ////////- laten we met een geheugen (M = 0; ik < $100000; I + +) {%) [] = md5 (me); laten we het schrappen van de reeks) ///////de helft (M = 0; ik < $100000; I + +) (instellingen rekenen [I] dollar);} ECHO "definitief" memory_get_usage (). "Normaal". 885912 bytes drukken; /* * /echo def.: "top" (). Memory_get_peak_usage. "Normaal"; de 13687072 byte * /* drukken:,, 4.De CPU 's gebruik van informatie, moeten we gebruik maken van het getrusage (is).Weet je nog, dit is niet voor de ramen, print_r (getrusage (*)); - (ru_oublock drukken [] = > 0 [ru_inblock] = > 0 [ru_msgsnd] = > 2 [ru_msgrcv] = > 3 - ru_maxrss] = > 12692 [ru_ixrss [] = > 764 ru_idrss] = > [ru_minflt 3864] = > 94 [ru_majflt] = > 0 [ru_nsignals] = > 1 /ru_nvcsw] = > 67 [ru_nivcsw] = > 4 - ru_nswap] = > 0 [ru_utime. Tv_usec] = > 0 [ru_utime. Tv_sec] = > 0 [ru_stime. Tv_usec] = > 6269 [ru_stime. Tv_sec] = > 0) * /, het lijkt misschien een beetje mysterieus, tenzij je er een systeem voor het beheer van de achtergrond.Dit is elke waarde interpretatie (hoef je niet te herinneren dat deze):,, ru_oublock: produktie, blok, blok opereren, ru_inblock: invoeren van operationele, ru_msgsnd:, sms, boodschap ontvangen, ru_msgrcv:,,,, ru_maxrss: de maximale omvang, die, ru_ixrss: delen van de omvang van ru_idrss geheugen, Integratie, de uitwisseling van gegevens: de omvang van ru_minflt, integratie, recycling, ru_majflt pagina 's:,,, blz. Ru_nsignals: fout:,, het signaal ontvangen,,, ru_nvcsw: vrijwillige overgang, ru_nivcsw: spontaan op zet, ru_nswap:, uitwisseling, ru_utime. Tv_usec: gebruikers (MW), ru_utime, tijd. Tv_sec:, die door de gebruikers van de tijd (SEC), ru_stime. Tv_usec:, het systeem dat de tijd (MW), ru_stime. Tv_sec:, het systeem voor de tijd (SEC), om te zien hoeveel macht.Het script is verbruikt, we moeten kijken naar de "gebruikers" en "de tijd van de waarde van het systeem".Tweede deel en msec bij verstek beschikbaar zijn.Kun je de microseconde waarde van 100 miljoen, en de toevoeging van de waarde van de totale naar de tweede, de tweede decimaal. Laten we kijken naar een voorbeeld: 3 seconden (niet - slapen, /druk) (3); de gegevens van slaap, getrusage () =; 's tijd: "gebruikers".($gegevens ['ru_utime. Tv_sec] + ['ru_utime dollar gegevens. Tv_usec] /1000000); ECHO "systeem".($gegevens ['ru_stime. Tv_sec] + ['ru_stime dollar gegevens. Tv_usec] /1 miljoen); de gebruikers: 0.011552 * print systeem: 0 * /, hoewel het script kost 3 seconden, de computer gebruik is erg laag.Want in de rust tijdens de operatie, van het script eigenlijk niet in de middelen van de verwerker.Zijn er veel andere taken kunnen worden in real - time, maar het kan niet met behulp van de verwerker, zoals op een diskette.Dus je ziet, loopt de computer gebruik en de werkelijke lengte is niet hetzelfde, en dit is een ander voorbeeld: ///////verkeer, 10 miljoen keer (in druk) ($I = 0; ik < 10 miljoen. $I + +) {}) = getrusage gegevens (); de duur van het gebruik van ECHO.: ".($gegevens ['ru_utime. Tv_sec] + ['ru_utime dollar gegevens. Tv_usec] /1000000); ECHO "systeem".($gegevens ['ru_stime. Tv_sec] + ['ru_stime dollar gegevens. Tv_usec] /1 miljoen); de gebruikers: 1.424592 * print systeem: 0.004204 * /, duurde het ongeveer 1,4 seconden van de CPU, bijna alle gebruikers van de tijd, want er is geen systeem, het systeem van de tijd van de uitvoering van De programma 's. De vertegenwoordiger van de kern van het systeem van de hoeveelheid noemen.Hier is een voorbeeld: de dollar = momentane (echt); ///////genaamd Xinhua ongeveer 3 seconden, (de momentane (echt) aan het begin van < 3) {}) = getrusage (); de gegevens van de gebruiker: "ECHO" tijd.($gegevens ['ru_utime. Tv_sec] + ['ru_utime dollar gegevens. Tv_usec] /1000000); ECHO "systeem".($gegevens ['ru_stime. Tv_sec] + ['ru_stime dollar gegevens. Tv_usec] /1 miljoen); de gebruikers: 1.088171 * print systeem: 1.675315 * /, nu hebben we veel systemen maken gebruik van de tijd.Dat is omdat het script microtime () functies vaak, de uitvoering van het verzoek door de exploitatie van een systeem voor het verkrijgen van de tijd, kan je ook nota zal nemen van deze cijfers niet zo in totaal 3 seconden.Dit is omdat de server kunnen andere processen, terwijl het script in 3 seconden in de loop van het gebruik van een verwerker niet 100%.Magie, PHP toegang te geven tot de huidige lijn nuttige magische constante (, __line__ dossier weg (,,), __file__ gids weg (,,), __dir__,), de naam van de functie (naam, __function__ (,,,) __class__,), naam van de methode (__method__) en de ruimte (Naam, __namespace__, en we zullen voor elk van de in dit artikel, en ik zal je vertellen wat cases.,, met inbegrip van andere scenario 's, dit is een goed idee, het gebruik, de __file__, constante of tegelijkertijd, in __dir__, PHP 5.3): ///////, Dit is ten opzichte van de lading, het script weg /kan kan leiden tot problemen van de catalogus van het script van verschillende require_once ('config; ////////- database.'/library/loader.php') Dit is ten opzichte van het pad van het dossier /ongeacht waar dit is, met inbegrip van deQuire_once (dirname (__file__). "/configuratie /database.'/library/loader.php');, het gebruik, de __line__, zodat aanpassing te vergemakkelijken.Je kan het volgen van de rijen: //////////////een code...My_debug ("een beter informatie", __line__); 4: * drukken wat beter informatie * ///////////////een code...My_debug ("een beter informatie", __line__); 11 /* drukken: een beter nieuws * /functie my_debug ($mononatriumglutamaat, $) (ECHO "dollar: dollar mononatriumglutamaat n";}, 6.De unieke identificatie, misschien moet je een unieke reeks omstandigheden.Ik zie veel mensen gebruiken, md5 (), de functie van deze, zelfs als het niet volledig voor deze doelstelling, die de enige. ////////echo md5 (().Mt_rand (11 miljoen), is in feite een PHP die functie uniqid () betekent dat het de enige voor die de string, ////////uniqid (ECHO); 4bd67c947233e * drukken die een unieke uniqid (ECHO); * * * * * * * * * * * * * * //drukken 4bd67c9472340, misschien is het je opgevallen dat, zelfs als het touw unieke en ze lijken voor een paar letters.Dit is omdat de string die in verband met de tijd en de server.Dit is eigenlijk een heel goed en bijwerking van elke nieuwe generatie ID 's zijn alfabetisch gerangschikt, zodat ze kunnen worden opgelost, de vermindering van de kans op gekopieerd, je kan door een voorvoegsel, of de tweede parameter toegenomen entropie, ///////- ECHO uniqid ('foo_ ") /* drukken; foo_4bd67d6cd8b8f * ////////meer entropie ECHO uniqid (", waar); * drukken 4bd67d6cd8b926.12135106 * /echo uniqid ('bar_, waar); * * * * * * * * bar_4bd67da367b650.43684647 /drukken. Deze functie zal leiden tot een korte reeks md5 (), zal dit ook het bespaart je wat ruimte.,, 7.Zo, je moet de tekst in de database of opgeslagen in een complexe variabelen?Je hoeft niet met je installatie of een voorwerp in geformatteerde string dure oplossing, als al deze functies PHP, zijn er twee manieren bijgehouden variabelen.Dit is een voorbeeld dat de toepassingen van de problemen () en unserialize (): ///////a), met $myvar = array ("'), 42 (1," twee "),'apple'); ///////$string omzetten naar een reeks problemen (= = = = = = $myvar); ECHO $string, /* afdrukken a:4:{i:0; s:5:" hallo "; i:1; i:42; i:2; a:2:{i:0; i:1; i:1; s:3:" twee ";}i:3; s:5:' Apple '} * ////////; je kan zich de oorspronkelijke variabele $newvar = unserialize ($string); print_r ($newvar); * afdrukken - ([0] => - => 42 [2] [1]; => - ([0] => 1. =>) [3] [1]; => appel) *, dit was het. Om te serialization PHPEchter, als gevolg van de hola is geworden in de afgelopen jaren zeer welkom is, hebben ze besloten om in PHP 5.2 bij steun voor het in.Nu kan je gebruiken, json_encode (), json_decode (). Functie: ///////- zoals, complexe myvar = - Hallo, 42, (1), ""),'apple ") omgezet in een string; ///////json_encode ($myvar); ECHO $string, /* drukken [" Hallo, 42, [1], "twee", "MAC"] (*) ////////kun je van die oorspronkelijke variabelen $newvar = json_decode ($)); print_r ($newvar); * print - ([0] = > Hallo [1] = > 42 [2] = > - ([0] = > 1 [1] = > 2) [3] = > appel) * /, het is compact en, wat het belangrijkste is, javascript en vele andere talen verenigbaar zijn.Echter, vanwege de complexe betreft, kan de informatie verloren.- een string, bij de bespreking van de compressie, we vaak wordt rekening gehouden met de documenten, zoals het archief.Als je kan een lange lijst van compressie, ongeacht de documenten in het dossier, in de volgende voorbeelden zullen wij gebruik maken van gzcompress () (), en gzuncompress string = "lorem ipsum dolor zitten, consectetur adipiscing elite.Maar de id mi ultricies adipiscing glimlach.Niet facilisi.De snelheid van de praesent kussen, "feugiat, lege team Pretium Orci, niet - ultricies Quis inzet van het meer.Lorem ipsum dolor zitten, consectetur adipiscing elite.De oude, ullamcorper Quis iaculis.De uitwisseling van etiam meester SED onrechtmatige is te groot.De elite van de Europese Unie en curabitur SED nibh te vermijden.Praesent "ornare diameter, consectetur CV, een glimlach.In mijn pellentesque posuere adipiscing Bentley.En ik ben niet bang. SED in zijde vechten.SED Magna nisi, ornare in mollis mollis met het Westen.Leo en etiam mollis Justo.In de scelerisque neque eget aan EU - niet - ENIM nullam.- lacus EU niet malesuada blbendum id euismod ze sodales. "; - = gzcompress dollar (USD)); de ECHO "de oorspronkelijke omvang".Strlen ($)). 'n "drukken; /* oorspronkelijke omvang: 800 * /ECHO - omvang:" ".Strlen ($)). 'n "drukken - omvang: 418; /////////* * * * * * * terug naar de oorspronkelijke = gzuncompress dollar (USD)); we kunnen bereiken, bijna 50% van de vermindering van de omvang.Ook gzencode () () en gzdecode functie tot vergelijkbare resultaten, door het gebruik van verschillende algoritmes.,, 9.Geregistreerde uitschakelen, is er een aspect heeft register_shutdown_function (), dit zal je laten uitvoeren in een code, na het einde van het script, wil je in je script aan het einde van een van de criteria zoals de statistieken te vangen, hoe lang het vangen, ///////begin start_time dollar = momentane (echt); ///////iets doen ///////...///////laat zien hoe lang de tijd om een script ECHO "uitvoering".(Xinhua (echt) tot en met start_time)."De tweede", ten eerste, het leek onbelangrijk.Heb je alleen de code moet worden toegevoegd aan de bodem in het script, en voor de operatie.Echter, als functie van uitgang () heeft je gebeld, de code niet zal vluchten.Bovendien, als er een fatale fout, of als het script is door de gebruiker (druk op de knop drukken in de browser), kan niet rennen, als je register_shutdown_function (), of waarom je code zal de uitvoering van het script heeft gestopt, start_time: $= momentane (echt); register_shutdown_function ('my_shutdown "); //////////////om bepaalde dingen te doen...De functie van de my_shutdown () {start_time dollar; uitvoering van: "ECHO".(Xinhua (echt) tot en met start_time)."De tweede";},, conclusies, je weet dat dat niet bekend, maar het is nuttig, andere PHP functie?In de opmerkingen en we delen.Bedankt voor je lezen.,
9 PHP functies en kenmerken, je moet weten dat
Previous:Taal: en ruby