Apache is snel en gemakkelijk geïnstalleerd en die geef ik normaal dan ook de voorkeur. Aangezien ik momenteel echter ook met Visual Basic, ASP en .NET bezig ben zit ik vrijwel aan IIS vast gezien ASP daar voornamelijk op draait.quote:Op dinsdag 3 april 2007 17:37 schreef Boschkabouter het volgende:
Maakt het eigenlijk wat uit of je Apache of IIS gebruikt om PHP pagina's te draaien?
Ik heb namelijk interesse om eens wat PHP te gaan leren, maar geen zin om Apache te instaleren en te gebruiken naast IIS. (en vooral omdat ik geen ruk van dat apache snap.)
Nee. Je kan geen fake adres gebruiken om iets te versturen via fsockopen. fsockopen is gewoon een wrapper voor connect() en daarmee heb je die optie niet.quote:Op dinsdag 3 april 2007 21:29 schreef Chandler het volgende:
Mensen,
Het is toch onmogelijk om middels PHP een fake IP adres te gebruiken als je bv via fsockopen gegevens verstuurt naar webservers?
en wat is nu je vraag?quote:Op woensdag 4 april 2007 21:54 schreef mschol het volgende:
oke vraagje:
als ik op een bepaalde site zoek krijg ik een lijst met matches, deze lijst wil ik importeren/invoegen in mijn eigen omgeving (die nog ongedefineerd is, dus lekker soepel)
wat wil ik precies:
ik tik in een zoek forumlier bij mijn site een naam in, er wordt door php een get request gedaan met de juiste url en vervolgens plukt hij de resultaten uit de gekregen pagina.
dit een voorbeeltje van een zoek term op de site:
http://www.animenewsnetwo(...)h.php?searchbox=love
hoe ik dat voor elkaar kan krijgenquote:
En wat lukt je niet? Het downloaden van de pagina? Het parsen van de resultaten? Het opslaan van de resultaten? Het weergeven van de resultaten?quote:Op woensdag 4 april 2007 22:24 schreef mschol het volgende:
[..]
hoe ik dat voor elkaar kan krijgen
dat hij dus alleen de resultaten eruit pakt en dat ik deze vervolgens kan hergebruiken in mijn omgeving..
ik weet dat er een functie voor was maar welke weet ik dus niet meerquote:Op woensdag 4 april 2007 23:24 schreef JeRa het volgende:
[..]
En wat lukt je niet? Het downloaden van de pagina? Het parsen van de resultaten? Het opslaan van de resultaten? Het weergeven van de resultaten?
twee problemen heb je dan wel:quote:
1 2 3 4 5 6 | $contents=file_get_contents('http://www.animenewsnetwork.com/encyclopedia/search.php?searchbox=love'); $to_match=substr($contents,($a=strpos($contents,'<!-- google_ad_section_start -->')),(strpos($contents,'<!-- google_ad_section_end -->')-$a)); preg_match_all('#<a href="(.*?)">(.*?)</a>#i',$to_match, $matches); var_dump($matches); ?> |
je hebt gelijk, ik ben veel te aardig anderen hun werk te doenquote:Op donderdag 5 april 2007 12:30 schreef Geqxon het volgende:
Ik had nog niet op de link geklikt, de eregi zoals ik hem heb pakt inderdaad alles. Het was puur een richtlijn
Verder is mijn voorbeeld uiteraard basic, om te laten zien hoe het kan. Verdere optimalisatie is een stap verder.
interessant. Ben benieuwd of er een lijstje is met gevallen waarin ereg() sneller is als preg_replace? Heb met google in ieder geval niks gevonden.quote:Op donderdag 5 april 2007 15:02 schreef JeRa het volgende:
@ralfie
De preg_* alternatieven voor ereg* functies zijn inderdaad vaak sneller, maar niet altijd. Zo heb ik ondervonden dat als je snel tekens wilt vervangen die niet in een subset van characters voorkomen ([^abc123etc]) de eregi véél sneller is dan de preg_replace
Voor zover ik weet ondersteunt PHP5 geen static constructors. Je zou het eventueel wél zo kunnen doen:quote:Op donderdag 5 april 2007 17:36 schreef CiQNiZ het volgende:
Hoi,
Stel ik heb een klasse.
Met daarin in ieder geval een static (private) variabele en een static (public) method.
In mijn code roep ik op eens die method op zonder een object te maken. Is het dan mogelijk dat er een constructor uitgevoerd zal worden? Zodat die variabele dan een keer gezet zal worden, en daarna niet meer (check in de constructor)?
Dit alles, uiteraard, in PHP5.
1 2 3 4 5 6 7 8 | Voorbeeld::waarde = 3; class Voorbeeld { public static $waarde; } ?> |
Ja... Maar...quote:Op donderdag 5 april 2007 17:46 schreef JeRa het volgende:
[..]
Voor zover ik weet ondersteunt PHP5 geen static constructors. Je zou het eventueel wél zo kunnen doen:
[ code verwijderd ]
1 2 3 4 5 6 7 | //niet statisch, dus wel een object aanmaken: $handle = new handler(); // zet de private var via de __construct() $handle->execA(); $handle->execB(); //enz. ?> |
1 2 3 4 5 6 7 | //statisch, en eerst maar dan die check uitvoeren en variabele zetten: handler::checkIt(); handler::execA(); handler::execB(); //enz. ?> |
Als je 30 methodes in een class hebt die aangeroepen kunnen worden terwijl je variabele niet geïnitialiseerd is moet je je toch eens ernstig afvragen of je wel het goede design te pakken hebtquote:Op donderdag 5 april 2007 17:59 schreef CiQNiZ het volgende:
[..]
Dan werkt het zoals ik wil. Maar is dit te omzeilen (dat ik dus niet eerst die check hoef uit te voeren voordat ik een methode uit die klasse aanroep)?
1 2 3 4 5 6 | class Voorbeeld { public static $waarde = 2; } ?> |
Hmm ja, met constante waardes ja.quote:Op donderdag 5 april 2007 18:07 schreef JeRa het volgende:
[..]
Als je 30 methodes in een class hebt die aangeroepen kunnen worden terwijl je variabele niet geïnitialiseerd is moet je je toch eens ernstig afvragen of je wel het goede design te pakken hebtmaar waarom lukt het volgende niet?
[ code verwijderd ]
Op die manier is je waarde altijd geïnitialiseerd en hoef je niets te checken in je methodes. Wil je echter een object initialiseren in die variabele, dan zul je het moeten doen op de manier die ik in mijn vorige post beschreef
1 2 3 4 | // dus dit gaat nooit werken ;) private static $handle = self::getHandle(); ?> |
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 | class stranger { private static $handle; public static function handler() { if (empty(self::handle)) { self::handle = somereallyspecialclass::getHandle(); } } public static function execA() { someclass::specialExec(0,10); doSomething(); } public static function execB() { someclass::specialExec(60, 100); doSomethingElse(); doSomethingMore(); takeOverTheWorld(); } } class someclass { public static function specialExec($x, $y) { // tada: stranger::handler(); doSomethingWithXandY($x, $y); doSomethingMoreWith($x, stranger::handle); doSomethingMoreWith($y, stranger::handle); } } // en in normale code ziet het er dan zo uit: stranger::execA(); stranger::execB(); stranger::execA(); stranger::execB(); /* precies hoe ik het hebben wil dus. ** de methodes worden normaal opgeroepen en de ** (private en static) $handle wordt gewoon geupdate */ ?> |
Tja, je gaf nergens een definitiequote:
Probeer eens voor jezelf duidelijk te maken wat je precies wilt bereiken (en of het design tot dan toe wel afdoende is) en zet de scenario's uitquote:Het gaat er gewoon om dat bij uitbreidingen eventueel gewoon niet nagedacht hoeft te worden over die $handle. Als je een methode uit die klasse oproept dan moet dat gewoon automatisch gaan.
Volgens dit concept moet het gewoon werken, echter, verdient het wmb niet echt een schoonheidsprijs.
1 2 3 4 5 6 7 8 | StaticVoorbeeld::mijnObject = new DOTTObject(); class StaticVoorbeeld { public static $mijnObject; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class StaticVoorbeeld { private static $mijnObject; public function roepFunctieAan($functienaam, $args) { // Initialiseer object StaticVoorbeeld::initialiseerMijnObject(); // Roep functie aan call_user_func_array('StaticVoorbeeld::' . $functienaam, $args); // ofzo } // overige methodes } Staticvoorbeeld::roepFunctieAan('purpleTentacle', array('take', 'over', 'the', 'world!')); ?> |
Klopt. Ik gaf nergens een definitiequote:Op donderdag 5 april 2007 20:35 schreef JeRa het volgende:
[..]
Tja, je gaf nergens een definitie![]()
[..]
Probeer eens voor jezelf duidelijk te maken wat je precies wilt bereiken (en of het design tot dan toe wel afdoende is) en zet de scenario's uithier heb je wat voorbeelden die volgens mij het dichtste bij jouw probleem liggen:
1) Het private static object mag altijd geïnitialiseerd worden en verandert niet in de loop van de tijd: doe gewoon zoiets:
[ code verwijderd ]
Dan kun je toch prima die eerste methode plaatsen in dezelfde include als de static class zelf?quote:Het gaat dus om 1. Eenmaal geinitialiseerd is geinitialiseerd. Done = done.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |