Om helemaal bitneukerig te zijn kan je zelfs stellen dat dit HTTP headers zijn, geen PHP headersquote:Op donderdag 26 juni 2008 10:36 schreef Tijn het volgende:
[..]
[ code verwijderd ]
Wat Tiemie zegt dus
Het zijn HTTP-headers. Met HTML heeft dit weinig te maken.quote:Op donderdag 26 juni 2008 10:46 schreef Scorpie het volgende:
[..]
Om helemaal bitneukerig te zijn kan je zelfs stellen dat dit HTML headers zijn, geen PHP headers
Je hebt helemaal gelijkquote:Op donderdag 26 juni 2008 10:50 schreef Tijn het volgende:
[..]
Het zijn HTTP-headers. Met HTML heeft dit weinig te maken.
Ik haalde die 2 door elkaar. Bedoelde HTTP headers te schrijven, schreef ipv daarvan HTMLquote:Op donderdag 26 juni 2008 11:39 schreef GI het volgende:
HTML naar HTTP is geen typo. Das gewoon een fout
http://pear.php.net/bugs/bug.php?id=14240quote:Op woensdag 25 juni 2008 17:08 schreef slacker_nl het volgende:
Joy... Een raar probleem:
[ code verwijderd ]
Ik maak gebruik van Net_LDAP2 (een PEAR package) en op mijn eigen machine werkt dit:
[ code verwijderd ]
Ik ga er niet vanuit dat op het moment dat je met LDAP connect dat je je sites extern host (en dus ook afhankelijk bent van je hoster om PHP te upgraden).quote:Op donderdag 26 juni 2008 13:53 schreef Tijn het volgende:
[..]
Helaas staat dat credo bij de meeste hostingproviders niet zo hoog in het vaandel
Ik bedoelde het meer in het algemeenquote:Op donderdag 26 juni 2008 14:13 schreef slacker_nl het volgende:
[..]
Ik ga er niet vanuit dat op het moment dat je met LDAP connect dat je je sites extern host (en dus ook afhankelijk bent van je hoster om PHP te upgraden).
Ik dank u mijnheer.quote:Op donderdag 26 juni 2008 10:36 schreef Tiemie het volgende:
[..]
[ code verwijderd ]
zie ook http://www.php.net/header :-)
quote:Op dinsdag 24 juni 2008 15:59 schreef ursel het volgende:
Kheb er weer eentje![]()
Met de exec functie probeer ik het programma ABC Amber Excel Converter aan te sturen. Heb echter al vele manieren ondertussen geprobeerd, maar tot nog toe zonder resultaat.
Als ik de ingevoerde executable in cmd knal werkt het proces wel gewoon goed.
De volgende command moet aangestuurd worden:
"C:\Program Files\ABC Amber Excel Converter\abcexcel.exe" "C:\demo.xls" "C:\demo.pdf" 3 1
Zoals je kan zien draait het dus op windows / IIS..
Overigens draaien we nog een ander programma vanaf de exec functie. Deze werkt wel gewoon goed. Permissies op beide exe files zijn identiek en zover ik heb kunnen achterhalen is op dit niveau geen verschil.
quote:Op woensdag 25 juni 2008 14:05 schreef ursel het volgende:
[..]
Even snel alle varianten hier op een simpelle manier weergegeven.
1 2 3 4 5 6 7 8 9 | $command = '\"C:\\Progra~1\\ABC_Amber_Excel_Converter\\abcexcel.exe\" \"D:\\wwwroot\\dev\\tmp\\file.xls\" \"D:\\wwwroot\\dev\\tmp\\file.csv\" 0 1'; $command = 'C:\Progra~1\ABC_Amber_Excel_Converter\abcexcel.exe D:\wwwroot\dev\tmp\file.xls D:\wwwroot\dev\tmp\file.csv 0 1'; $command = '"C:/Progra~1/ABC_Amber_Excel_Converter/abcexcel.exe" "D:/wwwroot/dev/tmp/file.xls" "D:/wwwroot/dev/tmp/file.csv" 0 1'; $command = '\"C:\/Progra~1\/ABC_Amber_Excel_Converter\/abcexcel.exe\" \"D:\/wwwroot\/dev\/tmp\/file.xls\" \"D:\/wwwroot\/dev\/tmp\/file.csv\" 0 1'; $command = 'C:/Progra~1/ABC_Amber_Excel_Converter/abcexcel.exe D:/wwwroot/dev/tmp/file.xls D:/wwwroot/dev/tmp/file.csv 0 1'; $result = exec('"'.$command.'"'); $result = exec($command); |
Toch nog een wanhopig kickje..quote:Waarij de combinaties (regel nummers) :
1-9
2-9
5-9
2-8
5-8
een CGI error gaven. Alle andere varianten werden wel doorlopen door PHP, maar er werd niets uitgevoerd. (Te controleren aan de hand dat er geen file.csv was.)
Om het leuker te maken, ook latitude kan negatief zijn. Heb je altijd dezelfde opmaak die je probeert te parsen?quote:Op donderdag 26 juni 2008 20:46 schreef Chandler het volgende:
Ik zit weer eens te sjitten met die stomme regexjes en heb het volgende
Country: NETHERLANDS (NL)
City: Groningen
Latitude: 53.2167
Longitude: 6.56667
Nu wil ik de volgende gegevens filteren.
Netherlands
NL
Groningen
53.2167
6.56667
Nu had ik reeds het volgende
!Country: \w+[:space:]\([A-Z]){2}\)
City: (\w+)
Latitude: \d+.\d+
Longitude: \d+.\d+/ism
maar helaas, krijg er niets uit... waar ga ik nu weer de fout in?
De longitude kan trouwens ook een min getal bevatten...
1 2 3 4 | $temp = explode(' ', 'Latitude: 53.2167'); $latitude = $temp[1]; ?> |
Voor het parsen van de hostip.info data pak ik 't veel simpeler aan.quote:Op donderdag 26 juni 2008 20:46 schreef Chandler het volgende:
[...]
Country: NETHERLANDS (NL)
City: Groningen
Latitude: 53.2167
Longitude: 6.56667
[...]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Connection: close Transfer-Encoding: chunked X-Powered-By: PHP/5.2.0 Content-Type: text/plain; charset=iso-8859-1 Expires: Sat, 28 Jun 2008 08:03:29 GMT Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT Cache-Control: public, max-age=86400 Pragma: !invalid Date: Fri, 27 Jun 2008 08:03:29 GMT Server: lighttpd/1.4.8 4e Country: NETHERLANDS (NL) City: Groningen Latitude: 53.2167 Longitude: 6.56667 0 |
1 2 3 4 | City: ([^\r\n] Latitude: ([-+]?[0-9]*\.?[0-9]+) Longitude: ([-+]?[0-9]*\.?[0-9]+)/ism' |
Ik zou gewoon met split werken als ik jouw was, met is_numeric kan je zien of een getal een float is (en dus heb je geen regexp nodig voor (negatieve) getallen).quote:Op vrijdag 27 juni 2008 10:18 schreef Chandler het volgende:
Hoezo minder foutgevoelig? als je weet wat voor gegevens je zou kunnen vinden, kun je daar de regex toch op instellen? en stel de server van hostip wordt veranderd en ik krijg er een extra header bij, dan zit ik alweer met de sores
Hahahaha, die heb ik al een keertje eerder gepost in deze topicreeks.quote:
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 | $lines = explode("\n", $buf); $geopIp = array(); foreach ($lines AS $id => $content) { if (substr($content, 0, 8) == "Country:") { $str = substr($content, 9, strlen($content) - 9); $i = strpos($str, "("); if ($i > 0) { $geoIp['country'] = trim(substr($str, 0, $i)); $geoIp['country_code'] = trim(substr($str, $i+1, 2)); } else { $geoIp['country'] = trim($str); } } elseif (substr($content, 0, 5) == "City:") { $str = substr($content, 6, strlen($content) - 6); $i = strpos($str, ","); if ($i > 0) { $geoIp['city'] = trim(substr($str, 0, $i)); $geoIp['state'] = trim(substr($str, $i, strlen($str) - $i)); } else { $geoIp['city'] = trim($str); $geoIp['state'] = ""; } } elseif (substr($content, 0, 9) == "Latitude:") { $geoIp['latitude'] = trim(substr($content, 10, strlen($content) - 10)); } elseif (substr($content, 0, 10) == "Longitude:") { $geoIp['longitude'] = trim(substr($content, 11, strlen($content) - 11)); } } ?> |
1 2 3 4 5 6 7 8 9 | ( [country] => NETHERLANDS [country_code] => NL [city] => Groningen [state] => [latitude] => 53.2167 [longitude] => 6.56667 ) |
Niet in puur HTML, je kunt wel een linkje maken en met JavaScript een onClick event maken die een form submit.quote:Op vrijdag 27 juni 2008 11:10 schreef slacker_nl het volgende:
[..]
Hahahaha, die heb ik al een keertje eerder gepost in deze topicreeks.
Maar ik heb een ubern00b question.
Kan je <a href="http://server/page.php?search=something">klik hier</a> ook dmv van een POST submitten? Dit wordt standaard een GET, nu kan ik wel met mod_rewrite aan de slag, maar volgens mij moet het op een andere manier ook kunnen. Iemand een idee?
Brrrr, dat kan veel mooier Chandler! Ga eens met eigen gemaakte functies werkenquote:Op vrijdag 27 juni 2008 11:13 schreef Chandler het volgende:
Je hebt gelijk slacker_nl maar al zou je een regex per 'onderdeel' doen, dan leek het mij toch sneller, alle kleine beetjes helpen.
Ik heb het trouwens nu zo opgelost
[ code verwijderd ]
uitvoer
[ code verwijderd ]
is cURL geen optie voor je? daarmee kun je namelijk zelf instellen of je wél of géén headers wilt én je kan een timeout opgeven.quote:Op vrijdag 27 juni 2008 09:49 schreef Chandler het volgende:
Het probleem is dat ik het nu uit ga lezen met fsockopen aangezien ik daar gebruik kan maken van een timeout tijd en met file, get_file_content niet...En fsockopen geeft veel meer info terug dan ik eingelijk wil
[ code verwijderd ]
nu wil ik graag via een regexje de inhoud filteren. en aangezien de headers altijd kunnen veranderen leek een regexje mij de perfecte oplossing.
Heb het volgende ook geprobeerd maar wederom zonder succes
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function doRequest($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); // geen header curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $contents = curl_exec($ch); curl_close($ch); return $contents; } var_dump(doRequest('http://api.hostip.info/get_html.php?ip=12.215.42.19&position=true')); // adres bestaat var_dump(doRequest('http://bla')); // geeft false terug <img class="rde_img_smiley" src="http://i.fok.nl/s/smile.gif" width="15" height="15" alt="" /> ?> |
Javascript heb ik nog geen kaas van gegeten, heb je ergens een stukje code liggen waarmee ik kan spelen?quote:Op vrijdag 27 juni 2008 11:15 schreef Dzy het volgende:
[..]
Niet in puur HTML, je kunt wel een linkje maken en met JavaScript een onClick event maken die een form submit.
quote:Op vrijdag 27 juni 2008 11:13 schreef Chandler het volgende:
Je hebt gelijk slacker_nl maar al zou je een regex per 'onderdeel' doen, dan leek het mij toch sneller, alle kleine beetjes helpen.
Ik heb het trouwens nu zo opgelost
[ code verwijderd ]
uitvoer
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $stuff = array("Country: NETHERLANDS (NL)", "City: Groningen", "Latitude: 53.2167", "Longitude: 6.56667"); $result = array(); foreach($stuff as $v) { $arr = split(': ', $v); $k = strtolower(array_shift($arr)); $result[$k] = join(": ", $arr); } if (array_key_exists("country", $result)) { list($result['country'], $result['tla']) = split("\(", $result['country']); $result['country'] = trim($result['country']); $result['tla'] = str_replace(")", "", $result['tla']); } /* Voeg nog is_numeric checks toe voor langitude en longitude */ print_r($result); ?> |
Ik wil die ?search=something niet in m'n adresbalk (het is een cosmetisch ding, verder niet). En mensen die geen javascript hebben aanstaan, die moeten het gewoon aanzetten.quote:Op vrijdag 27 juni 2008 11:24 schreef Tijn het volgende:
Nadeel van zo'n truc is natuurlijk wel dat clients die geen javascript ondersteunen of dat bewust uit hebben staan je website niet meer kunnen gebruiken.
Wat is überhaupt je probleem met GET?
Dan zou je ook eerst de GET-variabelen kunnen processen en daarna de user doorsturen naar een pagina met een cleanere URL.quote:Op vrijdag 27 juni 2008 11:32 schreef slacker_nl het volgende:
[..]
Ik wil die ?search=something niet in m'n adresbalk (het is een cosmetisch ding, verder niet).
Wat als dat niet kan, omdat ze bijvoorbeeld gebruik maken van een text-mode browser via een shell, een mobiele browser die Javascript niet ondersteunt of een Screenreader?quote:En mensen die geen javascript hebben aanstaan, die moeten het gewoon aanzetten.
Mmm, text browsing kan op die site, dus dat mag inderdaad niet breken.. Al kan Elinks wel Javascript aan...quote:Op vrijdag 27 juni 2008 11:39 schreef Tijn het volgende:
[..]
Dan zou je ook eerst de GET-variabelen kunnen processen en daarna de user doorsturen naar een pagina met een cleanere URL.
[..]
Wat als dat niet kan, omdat ze bijvoorbeeld gebruik maken van een text-mode browser via een shell, een mobiele browser die Javascript niet ondersteunt of een Screenreader?
Niks mis met Javascript om dingen te verfraaien hoor. Maar het is altijd jammer als de basisfunctionaliteit van een site verloren gaat als het niet wordt ondersteund.quote:Op vrijdag 27 juni 2008 11:46 schreef slacker_nl het volgende:
[..]
Mmm, text browsing kan op die site, dus dat mag inderdaad niet breken..
Ik zat te hopen dat ik niet teveel hoef aan te passen aangezien mijn HTML kennis echt niet top is. Ik kan een default pagina bouwen, maar zodra er wat meer moet kunnen dan default houdt het echt op.quote:Op vrijdag 27 juni 2008 11:48 schreef GI het volgende:
Herbouw dan gewoon een beetje waardoor je http://site/search/query kan doen. Ziet er gelikt zat uit
Kan idd veel mooier, maar dit is toch goed genoeg? lijkt mijquote:Op vrijdag 27 juni 2008 11:16 schreef Scorpie het volgende:
Brrrr, dat kan veel mooier Chandler! Ga eens met eigen gemaakte functies werken
Ik ben idd nog niet echt heel veel mer cURL bezig geweest maar idd was een handige optie. Maar nu heb ik het reeds met fsockopen, is het een groot voordeel als ik cURL gebruik?quote:Op vrijdag 27 juni 2008 11:16 schreef Tiemie het volgende:
is cURL geen optie voor je? daarmee kun je namelijk zelf instellen of je wél of géén headers wilt én je kan een timeout opgeven.
[ code verwijderd ]
Ziet er ook heel netjes uit maar is dat van mij dan zo langdradig ofzo?quote:Op vrijdag 27 juni 2008 11:30 schreef slacker_nl het volgende:
[ code verwijderd ]
Denk dat met curl je code schoner wordt. Ikzelf zou voor curl kiezen ipv zelf een socket openen en de data fetchen. Al is het een leuke 'for science approach' om het zelf met fsockopen te doen. Maar ik zou het in een productieomgeving niet doen, tenzij er een echt goede reden is om het wel te doen. Je wilt niet te low-level bezig zijn, dus de curl abstractielaag erboven is gewoon prettiger werken.quote:Op vrijdag 27 juni 2008 13:05 schreef Chandler het volgende:
Ik ben idd nog niet echt heel veel mer cURL bezig geweest maar idd was een handige optie. Maar nu heb ik het reeds met fsockopen, is het een groot voordeel als ik cURL gebruik?
Ziet er ook heel netjes uit maar is dat van mij dan zo langdradig ofzo?
Een groot voordeel? Essentieel!quote:Op vrijdag 27 juni 2008 13:05 schreef Chandler het volgende:
Ik ben idd nog niet echt heel veel mer cURL bezig geweest maar idd was een handige optie. Maar nu heb ik het reeds met fsockopen, is het een groot voordeel als ik cURL gebruik?
Ik ben eruit dat dat gedeelte van de site mag breken indien ik JS ga gebruiken om die ?search=stuff uit de adresbalk te krijgen.quote:Op vrijdag 27 juni 2008 11:47 schreef Tijn het volgende:
[..]
Niks mis met Javascript om dingen te verfraaien hoor. Maar het is altijd jammer als de basisfunctionaliteit van een site verloren gaat als het niet wordt ondersteund.
Lees de documentatie van curl. Je wilde ook het voordeel van PDO niet inzien...quote:Op vrijdag 27 juni 2008 17:28 schreef Chandler het volgende:
Maar wat is het voordeel nou precies?als het er alleen schoner van wordt vind ik het niet reden genoeg
Niet echt. Maar je hoeft ook niet aan elke mysql query "handmatig" die errorhandling functie toe te voegen.quote:Op zondag 29 juni 2008 10:36 schreef Chandler het volgende:
Verder een andere vraag; is er een manier om de fouten die mysql genereerd op te vangen met een errorhandler zonder aan iedere mysql_query een or doeiets() funcie vast te plakken?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |
Dat begrijpen we, maar is wel erg jammer. Je kunt FOK! namelijk wel gratis LEZEN, maar we kunnen FOK! niet gratis MAKEN. De inkomsten van de advertenties zorgen ervoor dat we de kosten van de site kunnen dragen zodat je ook morgen FOK! nog kunt bezoeken.
Zou je willen overwegen om voor FOK! een uitzondering te maken in je adblocker (of andere middelen die onze ads blokkeren)? Je krijgt deze melding dan nooit meer te zien.
Ja, ik wil fok.nl whitelisten, laat me zien hoe
Ik neem liever een premium account zodat ik geen advertenties hoef te zien (je moet eerst inloggen)
Ja, breng me naar de shop