Deze inderdaad. Heerlijke programma's hebben die lui. Ik gebruik er een aantal van met veel plezier.quote:
CURLOPT_HEADER gebruiken en kijken of er een "Location" header tussen zit.quote:Op zondag 26 mei 2013 20:50 schreef Chandler het volgende:
Weet iemand hoe je met curl kunt zien of een geladen URL een redirect is zonder deze te volgen met CURLOPT_FOLLOWLOCATION = false? want wil een redirect niet laden maar wel zien of er een redirect in de geladen url is gemaakt... die ik normaal gesproken kan volgen...
Top, ik ga het ff proberen!quote:Op zondag 26 mei 2013 21:24 schreef mstx het volgende:
[..]
CURLOPT_HEADER gebruiken en kijken of er een "Location" header tussen zit.
Een redirect is altijd een 3xx returncode, 200 is found. Daarnaar kijken?quote:Op zondag 26 mei 2013 20:50 schreef Chandler het volgende:
Weet iemand hoe je met curl kunt zien of een geladen URL een redirect is zonder deze te volgen met CURLOPT_FOLLOWLOCATION = false? want wil een redirect niet laden maar wel zien of er een redirect in de geladen url is gemaakt... die ik normaal gesproken kan volgen...
Probleem is/was dat ik met curl_getinfo gewoon een 200 krijg, daarna pas een header location oid!? maar goed...quote:Op zondag 26 mei 2013 21:41 schreef slacker_nl het volgende:
[..]
Een redirect is altijd een 3xx returncode, 200 is found. Daarnaar kijken?
Apart, want ik krijg dit:quote:Op zondag 26 mei 2013 21:42 schreef Chandler het volgende:
[..]
Probleem is/was dat ik met curl_getinfo gewoon een 200 krijg, daarna pas een header location oid!? maar goed...
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); print_r(curl_getinfo($ch, CURLINFO_HTTP_CODE)); # 302 curl_close($ch); ?> |
Zal ik het eens proberen? Uh, welke optie staat aan? Want ik kan deze optie ook niet met een fuzzy search vinden. Ow, en tuurlijk, als je follow location aanhebt staan, dan gaat ie uiteraard die volgen en kom je uit op een 200. Das logisch, tenzij je max-redirects ook aanpast en deze overschreden wordt.quote:Op zondag 26 mei 2013 21:55 schreef Chandler het volgende:
Juist maar ik heb ook de CURLOPT_FOLLORHEADER op false staankan daar door komen?
Correct, was: CURLOPT_FOLLOWLOCATION en die staat er wel tussenquote:Op zondag 26 mei 2013 22:01 schreef slacker_nl het volgende:
[..]
Zal ik het eens proberen? Uh, welke optie staat aan? Want ik kan deze optie ook niet met een fuzzy search vinden.
Case is dat ik wil uitvissen of er een redirect plaats vind, ja, dan geen data laden, nee dan wel data laden. want een redirect is voor mijn project niet nodig, alleen de directe data... tenzij een redirect naar het zelfde domein is.. maar het laatste is van mij voor ondergeschikt belang!.quote:Ow, en tuurlijk, als je follow location aanhebt staan, dan gaat ie uiteraard die volgen en kom je uit op een 200. Das logisch, tenzij je max-redirects ook aanpast en deze overschreden wordt.
Maar dan kan je met CURLINFO_REDIRECT_COUNT volgens mij zien hoeveel redirects je hebt gehad, > 0 is een redirect geweest.
En volgens mij kan je met CURLINFO_EFFECTIVE_URL dan zien wat de URL was welke je hebt aangesproken, als die niet gelijk is met je oorspronkelijke URL: redirect.
Dan moet je een no-follow doen, als 302 en location header naar iets wijst wat binnen je domein zit, daarop weer een request doen, zonder no-follow.quote:Op zondag 26 mei 2013 22:03 schreef Chandler het volgende:
[..]
Correct, was: CURLOPT_FOLLOWLOCATION en die staat er wel tussen
krijg je als je met 10 dingen te gelijk aan het doen bent
[..]
Case is dat ik wil uitvissen of er een redirect plaats vind, ja, dan geen data laden, nee dan wel data laden. want een redirect is voor mijn project niet nodig, alleen de directe data... tenzij een redirect naar het zelfde domein is.. maar het laatste is van mij voor ondergeschikt belang!.
Mocht ik deze nodig zijn, dan kan ik deze natuurlijk uitlezen en herschrijven indien nodig (location: index.php naar http://www.domein.nl/index.php) en aan mijn queue toevoegenquote:Op zondag 26 mei 2013 22:13 schreef slacker_nl het volgende:
[..]
Dan moet je een no-follow doen, als 302 en location header naar iets wijst wat binnen je domein zit, daarop weer een request doen, zonder no-follow.
Je doet je ondertitel eer aan nu.quote:Op zondag 26 mei 2013 22:17 schreef Chandler het volgende:
[..]
Mocht ik deze nodig zijn, dan kan ik deze natuurlijk uitlezen en herschrijven indien nodig (location: index.php naar http://www.domein.nl/index.php) en aan mijn queue toevoegen
en bedankt!quote:
probeer deze eensquote:Op zondag 26 mei 2013 21:39 schreef Chandler het volgende:
[..]
Top, ik ga het ff proberen!
Andere vraag; wanneer ik met Domdocument een html pagina wil laden krijg ik de volgende foutmelding.
Warning: DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' in Entity, line: 1354
Nu snap ik best dat niet iedere pagina een nette opbouw heeft, maar wil eigenlijk geen foutmeldingen zien, gewoon parsen totdat hij niet meer kan parsen oid?! nu dacht ik laat ik kijken welke opties ik mee kan geven (maar 1) en die vond ik hier: http://www.php.net/manual/en/libxml.constants.php
Maar daarvan heb ik meerdere geprobeerd maar blijf errors opvangen... alleen een vieze @ werktiemand een idee hoe ik dat kan oplossen? Ps domdocument gebruik ik om links uit te kunnen lezen.
Ik zou gewoon heel simpel een functie schrijven die de response parsed indien 200 http_code, bij een 30x http_code de redirect_url pakt, checked of het binnen het domein valt, indien ja, dan een recursive call doet (mss wel oppassen met redirect loops), en anders.. iets.quote:Op zondag 26 mei 2013 22:17 schreef Chandler het volgende:
[..]
Mocht ik deze nodig zijn, dan kan ik deze natuurlijk uitlezen en herschrijven indien nodig (location: index.php naar http://www.domein.nl/index.php) en aan mijn queue toevoegen
Had eerst een extra functie in mijn script met get_headers maar die vreet nogal wat resources en maakt het script stukken slomer....
Werkte niet, maar heb alleen true geprobeerd, misschien had ik deze wel op false moeten zetten (lol, kan nu niet ff testenquote:Op zondag 26 mei 2013 22:24 schreef wipes66 het volgende:
probeer deze eens
http://nl3.php.net/manual(...)-internal-errors.php
Daarom gebruik ik de queue om geen recursive call's te doen anders had ik die queue niet nodig gehad, dat was het eerste probleem die ik 4 weken geleden moest aanpakkenquote:Op zondag 26 mei 2013 22:30 schreef slacker_nl het volgende:
Ik zou gewoon heel simpel een functie schrijven die de response parsed indien 200 http_code, bij een 30x http_code de redirect_url pakt, checked of het binnen het domein valt, indien ja, dan een recursive call doet (mss wel oppassen met redirect loops), en anders.. iets.
| 1 2 3 4 5 6 7 8 | <?php $doc = new DOMDocument(); var_dump($doc->loadhtml("<html dxxx<nbody>haha<html>test")); var_dump($doc->loadhtml("<html><head></head><body><p>lol</p></body></html>")); exit; ?> |
Geeft het een foutmelding of een warning? Uit de documentatie:quote:Op dinsdag 28 mei 2013 09:27 schreef Chandler het volgende:
Waarom geeft het laden van een document via dom met loadhtml fouten maar true als resultaat?
[ code verwijderd ]
Beiden geven true terwijl de eerste een foutmelding geeft en dus een false zou moeten geven...
Edit: ik lees nu pas je eerdere postsquote:While malformed HTML should load successfully, this function may generate E_WARNING errors when it encounters bad markup. libxml's error handling functions may be used to handle these errors.
Ook daarmee krijg ik alleen maar 'true' terug... en er staat toch echt op php.net dat er een false gegeven zou moeten worden...quote:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php var_dump(libxml_use_internal_errors(true)); $doc = new DOMDocument(); if (!$doc->loadhtml("<html dxxx<nbody>haha<html>test")) { echo 'process error?'; } if (!$doc->loadhtml("<html><head></head><body><p>lol</p></body></html>")) { echo 'process error1?'; } exit; ?> |
Nee dat staat er niet, er staat:quote:Op dinsdag 28 mei 2013 16:06 schreef Chandler het volgende:
[..]
Ook daarmee krijg ik alleen maar 'true' terug... en er staat toch echt op php.net dat er een false gegeven zou moeten worden...
quote:This function returns the previous value of use_errors
Heb je ook gekeken naar de functie libxml_get_errors? Het voorbeeld wat ze daarbij geven doet precies wat jij wil, namelijk controleren op verkeerde xml...quote:libxml_use_internal_errors(true);
[ code verwijderd ]
zou dus een foutmelding moeten geven, maar niet dus
maar goed,ik heb het nu wel, al is het wel een in mijn ogen niet zo'n nette oplossing.quote:Returns TRUE on success or FALSE on failure. If called statically, returns a DOMDocument or FALSE on failure.
| 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 | <?php $errors = array(); libxml_use_internal_errors(true); $doc = new DOMDocument(); $doc->loadhtml("<html dxxx<nbody>haha<html>test"); $errors = libxml_get_errors(); libxml_clear_errors(); if (count($errors) > 0) { echo 'Moet een fout geven! FOUT!'; } $doc->loadhtml("<html><head></head><body><p>lol</p></body></html>"); $errors = libxml_get_errors(); libxml_clear_errors(); if (count($errors) > 0) { echo 'Als je dit ziet, is er iets echt goed mis....'; } // nog sneller if ($doc->loadHtml("<html dxxx<nbody>haha<html>test") && count(libxml_get_errors()) > 0) { echo 'html is fout 1'; } else { echo 'html is goed 1'; } libxml_clear_errors(); if ($doc->loadHtml("<html><head></head><body><p>lol</p></body></html>") && count(libxml_get_errors()) > 0) { echo 'html is fout 2'; } else { echo 'html is goed 2'; } exit; ?> |
Als je iets verder leest staat er dit:quote:Op dinsdag 28 mei 2013 16:43 schreef Chandler het volgende:
Ik doelde meer op domdocument
http://nl1.php.net/manual/en/domdocument.loadhtml.php
[..]
maar goed,ik heb het nu wel, al is het wel een in mijn ogen niet zo'n nette oplossing.
[ code verwijderd ]
Je huidige oplossing lijkt mij dus goed en ook volgens de documentatie.quote:While malformed HTML should load successfully, this function may generate E_WARNING errors when it encounters bad markup. libxml's error handling functions may be used to handle these errors.
| 1 2 3 | <?php include "foto.php" ; ?> |
| 1 2 3 | <?php include "fotos/foto.php" ; ?> |
| 1 2 3 4 5 6 7 8 | <?php var_dump(explode(':', get_include_path())); // array (size=3) // 0 => string '.' (length=1) <-- verwijst naar directory van het huidige php-bestand // 1 => string '/usr/share/php' (length=14) // 2 => string '/usr/share/pear' (length=15) ?> |
| 1 2 3 4 5 6 7 | player id | name ------------ 1 | henk 2 | truus 3 | sjaak |
| 1 2 3 4 5 6 7 | game id | player_id | character_id | waves | score ----------------------------------------------- 1 | 2 | 5 | 12 | 9000 2 | 5 | 9 | 8 | 4000 3 | 2 | 4 | 15 | 12000 |
| 1 2 3 4 | SELECT max(score) as score, character_id, waves FROM game GROUP BY user_id ORDER BY score |
Jawel, want het is de bedoeling dat er geen dubbele users in staan, maar alleen de maximale score van een user.quote:Op vrijdag 31 mei 2013 16:58 schreef KomtTijd... het volgende:
Je MAX(score) en GROUP BY zijn toch helemaal niet nodig?
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |