Dit is hem uiteindelijk geworden:quote:Op maandag 4 februari 2008 23:47 schreef Geqxon het volgende:
Ik gok zoiets:
[ code verwijderd ]
Vul de hoofdletters zelf maar in. :+
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | w.wedstrijd_id AS wid, w.wedstrijd_datum AS datum, t.team_naam AS thuis, u.team_naam AS uit, w.wedstrijd_score AS score, c.comp_name AS compnaam FROM whufc_wedstrijden w INNER JOIN whufc_teams AS t ON w.wedstrijd_thuis = t.team_id INNER JOIN whufc_teams AS u ON w.wedstrijd_uit = u.team_id INNER JOIN whufc_comps AS c ON w.wedstrijd_cid = c.comp_id WHERE w.wedstrijd_sid = $actsid ORDER BY w.wedstrijd_datum |
Top dat het gelukt is!quote:Op donderdag 7 februari 2008 21:01 schreef MrDoegewoon het volgende:
[..]
Dit is hem uiteindelijk geworden:
[ code verwijderd ]
Gaat het fout bij het opslaan of bij het weer uitlezen? Als je eerst opslaat en dan met phpmyadmin kijkt wat er dan staat dan heb je vast meer infoquote:Op donderdag 7 februari 2008 20:42 schreef wonderer het volgende:
Overigens doe ik echo gettype($kleur) en echo $kleur bij het bericht dat het is opgeslagen, en daar klopt de waarde en is het een string. Er gaat dus iets mis bij het opslaan
Opslaan. Hij slaat het als numerieke waarde (of zo) op, namelijk (bijv) 7e+23. En dat is dan 688E25.quote:Op donderdag 7 februari 2008 21:39 schreef Light het volgende:
[..]
Gaat het fout bij het opslaan of bij het weer uitlezen? Als je eerst opslaat en dan met phpmyadmin kijkt wat er dan staat dan heb je vast meer info
Toevoeging: heb je ook de hele query, zoals je die in php opbouwt? Ik denk dat het daar mis gaat namelijk.
Hoe bouw je die query op in php? Als in, wat geef je mysql_query mee? Ik denk dat het daar mis gaat, en dan wel met de quotjes.quote:Op donderdag 7 februari 2008 21:50 schreef wonderer het volgende:
[..]
Opslaan. Hij slaat het als numerieke waarde (of zo) op, namelijk (bijv) 7e+23. En dat is dan 688E25.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $d=connectDB(); $result=runquery("UPDATE chat_handles SET chatname=".quote_smart($chatname,$d).", avatar=".quote_smart($avatar,$d).", kleur=".quote_smart($kleur,$d).", accesskey=".quote_smart($accesskey,$d).", description=".quote_smart($description,$d)." WHERE saveas=".quote_smart($saveas,$d)." AND username=".quote_smart($user,$d),$d); function quote_smart($value,$dblink) { if (get_magic_quotes_gpc()) { $value = stripslashes($value); } if (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value,$dblink) . "'"; } return $value; } ?> |
1 2 3 4 5 | if (!is_numeric($value) || $force) { $value = "'" . mysql_real_escape_string($value,$dblink) . "'"; } ?> |
Alles wat in een text/(var)char veld in een database moet komen, moet worden voorzien van quotes. En alles wat in een getalveld komt, mag juist geen quotes hebben. Niet dat MySQL zo strikt is, maar 't is beter om het goed aan te wennen.quote:Op donderdag 7 februari 2008 23:22 schreef Arjan321 het volgende:
de is_numeric op (688E25) geeft (waarschijnlijk) true terug, waardoor je dus geen quotes in je query krijgt, en je dus een integer (688E25) in je string kolom`kleur` probeert op te slaan.
Om dit op te lossen kan je bijvoorbeeld een derde optionele parameter maken die forced om toch quotes om je value heen te geven..
[ code verwijderd ]
sowieso kan je op jouw huidige manier (een hoop) onnodige conversies in je database server krijgen, omdat dingen als string worden opgeslagen maar als integer kunnen binnenkomen..
1 2 3 4 5 6 7 8 9 10 11 12 13 | $result=runquery("UPDATE chat_handles SET chatname='".quote_smart($chatname,$d)."', avatar='".quote_smart($avatar,$d)."', kleur='".quote_smart($kleur,$d)."', accesskey='".quote_smart($accesskey,$d)."', description='".quote_smart($description,$d)."' WHERE saveas='".quote_smart($saveas,$d)."' AND username='".quote_smart($user,$d)."'",$d); function quote_smart($value,$dblink) { if (get_magic_quotes_gpc()) { $value = stripslashes($value); } //Het is niet echt erg om een getal te string_escapen, het getal verandert er iig niet door. return mysql_real_escape_string($value,$dblink); } ?> |
eerste regexp doet niks, en de 2e doet het half :{quote:Op donderdag 31 januari 2008 16:44 schreef Farenji het volgende:
- de tekst per regel inlezen
- als de regel met een ; begint: skippen
- met een regexp de md5 hash en de filename eruitfilteren:
Ongetest:
/^([a-f0-9]{32})/ voor de md5 (het gaat om het gedeelte tussen haakjes)
/\*(.*)$/ voor de filename
De md5 hashcode is (per definitie!) uniek voor een bestand dus die kun je als key gebruiken in je database.
1 2 3 4 | preg_match_all("/\*(.*)$/ ",$_POST["hash"],$hash); print_r($hash); ?> |
1 |
1 |
Weet je zeker dat het bestand netjes per regel wordt ingelezen? Het lijkt er op dat het een bestand van 1 regel is, of dat het als zodanig wordt ingelezen.quote:Op vrijdag 8 februari 2008 00:04 schreef qu63 het volgende:
inhoud van $_PST["hash"] is
[ code verwijderd ]
in de textarea staat het over meerdere regels verspreid, maar in de $_POST komt het als 1 regel er uit geloof ik.. Ik ga wel weer wat aanklooienquote:Op vrijdag 8 februari 2008 09:19 schreef Light het volgende:
[..]
Weet je zeker dat het bestand netjes per regel wordt ingelezen? Het lijkt er op dat het een bestand van 1 regel is, of dat het als zodanig wordt ingelezen.
ik heb welquote:Op vrijdag 8 februari 2008 12:01 schreef Xcalibur het volgende:
check eens op \r\n, \r en \n als regeleinden.... :)
1 2 3 4 | preg_match_all("/\*(.*)$/ ",str_replace("\n","<br>",$_POST["hash"]),$hash); print_r($hash); ?> |
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 | ; Size: 2021 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 14:34:34 a9417892c908eef3c573220b6a24c3bf *POTWDVD019.txt ; Size: 14309 bytes, Creation date: 2006-03-15 14:34:08, Modification date: 2006-03-15 14:34:09 65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.BUP ; Size: 26597 bytes, Creation date: 2006-03-15 14:34:10, Modification date: 2006-03-15 14:34:11 65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.IFO ; Size: 73701 bytes, Creation date: 2006-03-15 14:34:12, Modification date: 2006-03-15 14:34:12 196d82e1f7afacc6ea4f4a1caa0dbc2f *VIDEO_TS\VIDEO_TS.VOB ; Size: 114661 bytes, Creation date: 2006-03-15 14:34:13, Modification date: 2006-03-15 14:34:19 f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.BUP ; Size: 155621 bytes, Creation date: 2006-03-15 14:34:20, Modification date: 2006-03-15 14:34:23 f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.IFO ; Size: 10924005 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 15:24:07 5defea3427c04218c81dff47ee69f1a0 *VIDEO_TS\VTS_01_0.VOB ; Size: 1083848677 bytes, Creation date: 2006-03-15 15:24:08, Modification date: 2006-03-28 03:14:40 72b9c827ec29e43ce356b8733e5e2957 *VIDEO_TS\VTS_01_1.VOB ; Size: 2156382181 bytes, Creation date: 2006-04-02 13:17:52, Modification date: 2006-04-18 10:15:47 d1db84986d126e5838f167bd52e3be56 *VIDEO_TS\VTS_01_2.VOB ; Size: 3229100005 bytes, Creation date: 2006-04-03 14:09:27, Modification date: 2006-04-16 17:39:54 48e67b2589ddc5e60ef2e156d4e23b0b *VIDEO_TS\VTS_01_3.VOB ; Size: 3329441765 bytes, Creation date: 2006-04-08 06:02:52, Modification date: 2006-04-08 08:19:34 c308f264d32ff5b645e9b9485e7b34c1 *VIDEO_TS\VTS_01_4.VOB ) [1] => Array ( [0] => POTWDVD019 - Rock Aid America - The Making of Smoke On The Water.md5 ; Size: 2021 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 14:34:34 a9417892c908eef3c573220b6a24c3bf *POTWDVD019.txt ; Size: 14309 bytes, Creation date: 2006-03-15 14:34:08, Modification date: 2006-03-15 14:34:09 65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.BUP ; Size: 26597 bytes, Creation date: 2006-03-15 14:34:10, Modification date: 2006-03-15 14:34:11 65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.IFO ; Size: 73701 bytes, Creation date: 2006-03-15 14:34:12, Modification date: 2006-03-15 14:34:12 196d82e1f7afacc6ea4f4a1caa0dbc2f *VIDEO_TS\VIDEO_TS.VOB ; Size: 114661 bytes, Creation date: 2006-03-15 14:34:13, Modification date: 2006-03-15 14:34:19 f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.BUP ; Size: 155621 bytes, Creation date: 2006-03-15 14:34:20, Modification date: 2006-03-15 14:34:23 f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.IFO ; Size: 10924005 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 15:24:07 5defea3427c04218c81dff47ee69f1a0 *VIDEO_TS\VTS_01_0.VOB ; Size: 1083848677 bytes, Creation date: 2006-03-15 15:24:08, Modification date: 2006-03-28 03:14:40 72b9c827ec29e43ce356b8733e5e2957 *VIDEO_TS\VTS_01_1.VOB ; Size: 2156382181 bytes, Creation date: 2006-04-02 13:17:52, Modification date: 2006-04-18 10:15:47 d1db84986d126e5838f167bd52e3be56 *VIDEO_TS\VTS_01_2.VOB ; Size: 3229100005 bytes, Creation date: 2006-04-03 14:09:27, Modification date: 2006-04-16 17:39:54 48e67b2589ddc5e60ef2e156d4e23b0b *VIDEO_TS\VTS_01_3.VOB ; Size: 3329441765 bytes, Creation date: 2006-04-08 06:02:52, Modification date: 2006-04-08 08:19:34 c308f264d32ff5b645e9b9485e7b34c1 *VIDEO_TS\VTS_01_4.VOB ) ) |
1 2 3 4 5 6 7 8 | $regular_expression = '#; Size: ([0-9]{1,20}) bytes, '; $regular_expression .= 'Creation date: ([0-9]{4}-[0-9]{2}-[0-9]{2}) ([0-9]{2}:[0-9]{2}:[0-9]{2}), '; $regular_expression .= 'Modification date: ([0-9]{4}-[0-9]{2}-[0-9]{2}) ([0-9]{2}:[0-9]{2}:[0-9]{2})'; $regular_expression .= '\r\n([a-z0-9]{32})'; $regular_expression .= ' \*(.*)\r\n#Us'; preg_match_all($regular_expression, $data, $matches, PREG_SET_ORDER); ?> |
ik heb er nu een textarea van gemaakt ipv een file-upload.quote:Op vrijdag 8 februari 2008 13:16 schreef Xcalibur het volgende:
maar je leest het bestand niet per regel in dan?
Dat lijkt me wel een goed begin namelijk.....
En dan dus per regel de regex eroverheen, dan moet het een stuk overzichtelijker worden
thanks, ik ga daar wel ff mee spelenquote:Op vrijdag 8 februari 2008 13:36 schreef Geqxon het volgende:
qu63, met deze regex krijg ik de uitgebreide variant prima geregext:
[ code verwijderd ]
1 2 3 4 5 | { echo $value="<a href='pizza.php?id=" . $pizzaID . "'>$value</a>"; } |
1 2 3 4 5 6 7 8 9 10 11 | echo "<a href='pizza.php?id=" . $pizzaID . "'>"; foreach ($ingredienten as $key => $value) { echo $value; } echo "</a>"; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //bij dit voorbeeld ga ik er vanuit dat je een array hebt die //oplopende getallen heeft als keys $ingredientenlink = ''; $aantal_ingredienten = count($ingredienten); for($i = 0; $i< $aantal_ingredienten; $i++) { //het stukje na de . kijkt of het het laatste ingredient uit de array is $ingredientenlink .= $ingredienten[$i] . ($i == $aantal_ingredienten ? '' : ', '); } echo '<a href="pizza.php?id=' . $pizzaID . '">' . $ingredientenlink . '</a>'; //bij dit voorbeeld maakt het niet uit wat de keys van je array zijn $ingredientenlink = ''; $aantal_ingredienten = count($ingredienten); $i = 1; foreach($ingredienten as $ingredient) { $ingredientenlink .= $ingredient . ($i == $aantal_ingredienten ? '' : ', '); $i++; } echo '<a href="pizza.php?id=' . $pizzaID . '">' . $ingredientenlink . '</a>'; ?> |
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
[ Bericht 56% gewijzigd door fokME2 op 08-02-2008 15:51:49 ]
Als de PREG_SET_ORDER flag aan staat kan dat met "count($matches)", waarbij $matches de array met gevonden resultaten is.quote:Op vrijdag 8 februari 2008 16:03 schreef qu63 het volgende:
hoe kan ik weten hoeveel matches ik heb met Geqxon's preg_match_all?
ereg_replace("[^A-Za-z0-9]", "", $string);quote:Op vrijdag 8 februari 2008 16:06 schreef Chandler het volgende:
Kleine vraag; hoe kan ik alle karakters uit een stuk test die niet a-Z0-9_- zijn verwijderen?
Ik zie het al. Dat komt zo te zien door de \r\n op het einde. Probeer het eens met deze weggehaald?quote:Op vrijdag 8 februari 2008 16:55 schreef qu63 het volgende:
op de een of andere naier skipped die preg_match_all de laatste .VOB in de lijst
dan pakt ie wel alle bestanden ja, alleen nu werken alleen de hashcodes nog, filename blijft leegquote:Op vrijdag 8 februari 2008 17:01 schreef Geqxon het volgende:
[..]
Ik zie het al. Dat komt zo te zien door de \r\n op het einde. Probeer het eens met deze weggehaald?
O leuk, gaan we golfen? :)quote:
1 2 3 | echo "<a href='pizza.php?id=$pizzaID'>".join(',',$ingredienten)."</a>"; ?> |
"join — Alias of implode()".quote:Op vrijdag 8 februari 2008 18:49 schreef SuperRembo het volgende:
[..]
O leuk, gaan we golfen?
[ code verwijderd ]
quote:Op vrijdag 8 februari 2008 18:49 schreef SuperRembo het volgende:
[..]
O leuk, gaan we golfen?
[ code verwijderd ]
1 |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 | $url = "http://www.google.nl/search?hl=nl&q=een+zoek+woord&aq=een+ander+zoek+woord&meta="; $parameters = parse_url($url, PHP_URL_QUERY); $parameters = explode("&", $parameters); $parameter_array = array(); foreach ($parameters as $parameter){ list($key, $value) = explode("=", $parameter); $parameter_array[$key] = $value; } ?> |
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | function getmicrotime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } function php_get_browser($agent = NULL) { $agent = $agent ? $agent : $_SERVER['HTTP_USER_AGENT']; $yu = array(); $q_s = array("#\.#","#\*#","#\?#"); $q_r = array("\.",".*",".?"); $brows = parse_ini_file("browscap.ini", true); foreach ($brows as $k => $t) { if (fnmatch($k, $agent)) { $yu['browser_name_pattern'] = $k; $pat = preg_replace($q_s, $q_r, $k); $yu['browser_name_regex'] = strtolower("^" . $pat . "$"); foreach ($brows as $g => $r) { if ($t['Parent'] == $g) { foreach ($brows as $a => $b) { if ($r['Parent'] == $a) { $yu = array_merge($yu, $b, $r, $t); foreach($yu as $d => $z) { $l = strtolower($d); $hu[$l] = $z; } } } } } break; } } return $hu; } $start = getMicroTime(); if (!function_exists('fnmatch')) { function fnmatch($pattern, $string) { return @preg_match('/^' . strtr(addcslashes($pattern, '/\\.+^$(){}=!<>|'), array('*' => '.*', '?' => '.?')) . '$/i', $string); } } echo '<pre>'; $brouwser = php_get_browser(); $brouwser['browser'] = str_replace("IE", "Internet Explorer", $brouwser['browser']); print_r($brouwser); echo round(getMicroTime() - $start, 2); ?> |
Wat is er zo vreselijk interessant aan welke browser/os een bezoeker precies gebruikt, waarom zou je daar zo veel webserverpower aan verspillen?quote:Op zondag 10 februari 2008 17:34 schreef Chandler het volgende:
Aangezien parsen van vele sites nogal intensief is vraag ik mij af of dit (zie code) te behappen is als je bv 1000 gebruikers p/minuut op je site krijgt.
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 | { [..] foreach ($brows as $g => $r) { [..] foreach ($brows as $a => $b) { [..] $yu = array_merge($yu, $b, $r, $t); foreach($yu as $d => $z) |
Ja ja Brouwserquote:Op zondag 10 februari 2008 19:59 schreef SuperRembo het volgende:
[..]
Wat is er zo vreselijk interessant aan welke browser/os een bezoeker precies gebruikt, waarom zou je daar zo veel webserverpower aan verspillen?
$brouwser![]()
Dan zal je nog het een en ander moeten optimaliseren, want nu haal je nog geen 15 pagina's per seconde.quote:Op zondag 10 februari 2008 20:16 schreef Chandler het volgende:
[..]
Ja ja Brouwser![]()
Maaruh gewoon, ik wil deze statistieken bewaren
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |