Iemand nog een ideetje?quote:Op donderdag 15 november 2007 19:42 schreef Darkomen het volgende:
Ik moet een lijst van namen omzetten naar mogelijke email adressen.
maar die namen zitten vol met trema's, dubbelpunten, spaties etc.
Ik kan dat allemaal 1 voor 1 vervangen, maar heeft er iemand misschien een expressie of iets dergelijks?
Die dus een naam veilig maakt om als email adres aangemaakt te worden?
http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=php+%2Bhtml+to+pdfquote:Op dinsdag 20 november 2007 14:49 schreef broodmonkeh het volgende:
Ik zoek een script waarmee ik een HTML / PHP i.c.m CSS pagina om kan zetten naar PDF. Ik heb tot nu toe nog niks kunnen vinden. Het dichtste bij kwam http://www.phpclasses.org/browse/package/2905.html , maar dit script maakt gebruik van een andere server en die pleurt er reclame onder van 48px groot. Heeft iemand toevallig wat liggen?
Ja, die is wel echt UTF-8quote:Is je pagina ook echt UTF-8? (Inclusief juiste headers)
Meestal voldoet iso-8859-15 prima (en geeft minder problemen)
Schrijf er een fucking scriptje voor? :P Waar heb je het voor nodig? Je kunt in elke willekeurige taal wel met een loopje naar de output of een file een regel wegschrijven.quote:Op dinsdag 20 november 2007 15:30 schreef DaFrenk het volgende:
2) Hoe kan ik een regel bijvoorbeeld 10.000 keer plakken zonder 10.000 keer op command+v te drukken? :{ Ik werk dus @ Mac OS X met Smultron. Eventueel kan ik ook gebruik maken van Windows als het daar wel mogelijk is.
Thanks :)
1 2 3 4 | { echo "Dit is mijn prachtige regel! :D"; } |
Of je doet 14 x (Ctrl+A, Ctrl+C, Ctrl+V), dan heb je er 16384quote:Op woensdag 21 november 2007 00:33 schreef Dzy het volgende:
[..]
Schrijf er een fucking scriptje voor? Waar heb je het voor nodig? Je kunt in elke willekeurige taal wel met een loopje naar de output of een file een regel wegschrijven.
[ code verwijderd ]
Of je doet het in javascript kun je hem gelijk copy pasten naar je bestand.
D'oh! Dat is wel heel stom dat ik daar niet aan gedacht heb!quote:Op woensdag 21 november 2007 09:13 schreef SuperRembo het volgende:
[..]
Of je doet 14 x (Ctrl+A, Ctrl+C, Ctrl+V), dan heb je er 16384
1 2 3 4 | - id - link id - referer |
1 2 3 4 5 | 2 1 http://www.fok.nl/listtopics/3423 3 1 http://www.nu.nl/artiekeletc.php?q=3423&id=2&etc=0 4 1 http://www.nu.nl/artiekeletc.php?q=3423&id=2&etc=1 5 1 http://www.nu.nl/artiekeletc.php?q=3423&id=2&etc=2 |
Je kunt door middel van een query de referer uitlezen en vervolgens met behulp van een reguliere expressie het www.domein.tld stuk eruit proberen te halen.quote:Op woensdag 21 november 2007 10:57 schreef Chandler het volgende:
Ik heb even een kort vraagje.
Hoe kan ik uit een database het volgende halen met de volgende data
[ code verwijderd ]
voorbeeld data
[ code verwijderd ]
nu wil ik graag alleen de domeinnamen uit de database lezen... is dat mogelijk middels MYSQL alleen?
Ik neem aan dat je bedoelt dat X 32 hits heeft?quote:Op woensdag 21 november 2007 11:45 schreef Chandler het volgende:
En dan nog een klein vraagje.
Stel je hebt een array
$x[] = array("x", 32);
$x[] = array("y", 22);
$x[] = array("z", 55);
en ik wil alles sorteren op combinatie van het aantal hits? hoe doe ik dat :D en heb gezocht maar sort (ksort) kon mij niet een bevredigend antwoord geven :{
1 2 3 4 5 6 7 | $x = array( "x" => 32, "y" => 22, "z" => 55 ); ?> |
1 2 3 4 5 | $x["x"] = 32; $x["y"] = 22; $x["z"] = 55; ?> |
1 2 3 | asort($x); ?> |
1 2 3 4 5 | $x[]["x"] = 32; $x[]["y"] = 22; $x[]["z"] = 55; ?> |
1 2 3 | Parse error: syntax error, unexpected 'tvp' in /topic/1097499/ on line 1, 3, 7, 11, 12, 27, 28 ?> |
Correct maar ik wil dus niet sorteren op de key maar op een valuequote:Op woensdag 21 november 2007 11:54 schreef Aquaatje het volgende:
[..]
Ik neem aan dat je bedoelt dat X 32 hits heeft?
[ code verwijderd ]
of
[ code verwijderd ]
gebruiken zodat je een simpel array hebt. Gebruik vervolgens
[ code verwijderd ]
om je array op basis van de getallen te sorteren. Ksort sorteert op keys.
Jouw probleem met de array definitie die je plaatst is dat je een een array creert in een rij van je x-array. Wat jij krijgt is:
[ code verwijderd ]
1 2 3 | asort($arr); ?> |
1 2 3 | ksort($arr); ?> |
Wat is de bedoeling? Ik wil thuis best eens kijkenquote:Op woensdag 21 november 2007 11:27 schreef Chandler het volgende:
Daar zat ik reeds doorheen te snuffelen maar lijkt wel of het niet geheel mogelijk is tenzij je een expert met regex queries bent
Eingelijk wil ik uit een referer tabel alle domeinen halen plus alle pagina's maar zonder commando's alla ? en & etc.. that's allquote:Op woensdag 21 november 2007 16:45 schreef Light het volgende:
[..]
Wat is de bedoeling? Ik wil thuis best eens kijken
Waarom kan je vanuit Word niet gewoon als .txt opslaan?quote:Op woensdag 21 november 2007 09:10 schreef hornage het volgende:
Deze tussenstap is uiteraard omslachtig en moest eruit gehaald worden. Ik ben eerst op zoek geweest naar een manier om de txt bestanden in te lezen, maar ik stuitte op allerlei problemen die waarschijnlijk te wijten zijn aan Word for Mac.
Gewoon ff de MySQL manual doorbladeren... vaak kom je wat tegen wat handig uit komt:quote:Op woensdag 21 november 2007 18:23 schreef Chandler het volgende:
[..]
Eingelijk wil ik uit een referer tabel alle domeinen halen plus alle pagina's maar zonder commando's alla ? en & etc.. that's all :) :D
1 2 | FROM mytable |
1 |
Ik zou het sowieso niet mogelijk maken om meerdere bestanden tegelijkertijd te downloadenquote:Op zondag 25 november 2007 13:01 schreef Chandler het volgende:
Allemaal, ik heb jullie hulp nodig. Aangezien een van mijn websites laatst offline is geholpen door een grapjas die het leuk vond om steeds maar een bepaald bestand te downloaden wil ik nu een scriptje bouwen die de bandbreedte verbruik per IP gaat controlleren.
Maar nu vraag ik mij af waarop ik het beste kan controlleren.
1. Aantal hits op specifiek bestand in xx tijd
2. Aantal hits op specifiek bestand met xxx bytes
Of hoe denken jullie dat ik dit het beste kan controlleren
Waarschijnlijk bots die proberen die pagina's op te halen, om zo te kijken of er leaks inzitten zodat ze je site kunnen hackenquote:Op zondag 25 november 2007 15:17 schreef Xcalibur het volgende:
Niet echt een PHP vraag, maar misschien hebben jullie een idee
Sinds vorige week staat mijn nieuwe site live, inclusief een errorpagina die mij netjes een mail stuurt met gegevens over de pagina die niet gevonden is. Nu krijg ik daar dus af en toe een mailtje van, vooral vanaf pagina's uit de oude site die nu niet meer bestaan. So far, so good.
Ik krijg ook af en toe een reeks mailtjes van pagina's als /email, /horde_email/ email_readme, /drupal en dergelijke. Ik kan hier op Google niks over vinden, maar het voelt als hack-attempts
Enig idee waar dit vandaan komt, en wat ik hier tegen kan doen?
Kun je niet beter je script aanpassen zodat wanneer ze die pagina's bezoeken er geen mailtje gestuurd word?quote:Op zondag 25 november 2007 15:27 schreef Xcalibur het volgende:
ja, zoiets vermoed ik ook.... nou is d'r niks te vinden, maar blij ben ik er ook niet mee
Bovendien word ik gestoord van al die mailtjes
Een referer hebben ze niet, is er een manier om erachter te komen vanaf welk IP-adres ze komen ofzo? Zodat ik die in ieder geval kan blocken?
Dan errors welke komen van bezoekers zonder referrer niet mailen?quote:Op zondag 25 november 2007 15:37 schreef Xcalibur het volgende:
nou, tot nu toe zijn het steeds verschillende pagina's geweest, dus dat is net zo hopeloos waarschijnlijk
Tegen die hack probes doe je totaal niks, onbegonnen werk en zonde van je tijd want last heb je er toch niet van, tenzij je elke keer een mailtje laat sturenquote:Op zondag 25 november 2007 15:37 schreef Xcalibur het volgende:
nou, tot nu toe zijn het steeds verschillende pagina's geweest, dus dat is net zo hopeloos waarschijnlijk
Probleem is dat downloaden ook bekijken isquote:Op zondag 25 november 2007 13:09 schreef JortK het volgende:
[..]
Ik zou het sowieso niet mogelijk maken om meerdere bestanden tegelijkertijd te downloaden
Verder zou ik kijken naar het aantal downloads van een bestand per ID per een x tijd
Dan moet je de combinatie maken denk ikquote:Op zondag 25 november 2007 16:48 schreef Chandler het volgende:
[..]
Probleem is dat downloaden ook bekijken is
En je je moet wel meerdere afbeeldingen kunnen bekijken/ophalen toch?
1 2 3 | preg_match('/^(.*?)\,[ ](the|a|de|dr\.|dj\.)$/', $Name, $Match); ?> |
De *? staat voor ungreedy (of reluctant). De quantifier gevolgd door een vraagteken geeft dan aan dat die een geldige pattern moet vinden, maar het liefst een zo kort mogelijke. Om het even aan de hand van een voorbeeld te illustreren :quote:Op zondag 25 november 2007 20:30 schreef SuperRembo het volgende:
Ik denk dat de combinatie "*?" niet mag. * betekent 0 of meerdere keren, ? betekent 0 of 1 keer. Het vraagteken is dus overbodig.
1 2 3 4 5 6 | preg_match('#a(b|a)*a#', 'ababba'); // Matcht 'ababba' // Reluctant preg_match('#(a(b|a)*?a#', 'ababba'); // Matcht 'aba' preg_match('#(a(b|a)*?a#', 'abbbabba'); // Matcht 'abbba' |
Je kunt een pattern ook ungreedy maken met de modifier U:quote:Op zondag 25 november 2007 23:12 schreef autocue het volgende:
[..]
De *? staat voor ungreedy (of reluctant). De quantifier gevolgd door een vraagteken geeft dan aan dat die een geldige pattern moet vinden, maar het liefst een zo kort mogelijke. Om het even aan de hand van een voorbeeld te illustreren :
1 |
Ja, natuurlijk. Was ik ff vergeten. Hij is bij deze regexp wel overbodig, want er staat niets in wat een verschil tussen greedy/ungreedy zou maken.quote:Op zondag 25 november 2007 23:12 schreef autocue het volgende:
De *? staat voor ungreedy (of reluctant).
Ik vroem me ook al af of er niet ergens een \ zou zijn weggevallen.quote:Is het misschien Replique die dingen raar escapet?
Zoals ik al noemde in mijn verhaal of in mijn vorige topic is dit wel mogelijk, alleen er komt een bepaalde encoding overheen die ervoor zorgt dat je meer problemen krijgt dan alleen maar andere line-breaks.quote:Op woensdag 21 november 2007 19:04 schreef Xcalibur het volgende:
[..]
Waarom kan je vanuit Word niet gewoon als .txt opslaan?
Het enige wat ik me kan voorstellen is dat je een probleem met de regeleinden hebt, maar dat lijkt me wel op te lossen
Je kunt de boel toch gewoon in gescheiden kollomen gooien in je tabelquote:Op dinsdag 27 november 2007 14:22 schreef Chandler het volgende:
Vraagje;
Ik wil bestellingen van een bepaalde website opslaan op een nieuwe methode.
Nu kwak ik de gehele bestelling in tekst (zoals deze per email verzonden wordt) in een database, maar nu wil ik bepaalde waarden anders gaan opslaan. En ik vroeg mij het volgende af.
Kan ik een tabel zowel gebruiken voor nummerieke als tekstuele gegevens of is het handiger om deze tabellen te splitsen (nummeriek en teksten (text) in een appart tabel)
Of zou ik dit tabel voor beide waarden kunnen gebruiken? (met 2 mogelijk te vullen velden 1 nummeriek, 1 tekst plus een veld om aan te geven welk veld gevuld is)
Waarom zou je dat willen splitsen? Zet het lekker in 1 tabel, zorg er alleen voor dat je database genormaliseerd is.quote:Op dinsdag 27 november 2007 14:22 schreef Chandler het volgende:
Vraagje;
Ik wil bestellingen van een bepaalde website opslaan op een nieuwe methode.
Nu kwak ik de gehele bestelling in tekst (zoals deze per email verzonden wordt) in een database, maar nu wil ik bepaalde waarden anders gaan opslaan. En ik vroeg mij het volgende af.
Kan ik een tabel zowel gebruiken voor nummerieke als tekstuele gegevens of is het handiger om deze tabellen te splitsen (nummeriek en teksten (text) in een appart tabel)
Of zou ik dit tabel voor beide waarden kunnen gebruiken? (met 2 mogelijk te vullen velden 1 nummeriek, 1 tekst plus een veld om aan te geven welk veld gevuld is)
Ik snap niet wat je nu helemaal bedoeldquote:Op dinsdag 27 november 2007 14:49 schreef Chandler het volgende:
Klopt jullie hebben gelijk, maar deze bestelling is bestelling anders, daar kan ik natuurlijk moeilijk de database op aanpassen! (per type bestelling) en daarom leek het mij handiger om bepaalde gegevens anders te verwerken!
Ik heb het opgelost.quote:Op zondag 25 november 2007 23:12 schreef autocue het volgende:
[..]
De *? staat voor ungreedy (of reluctant). De quantifier gevolgd door een vraagteken geeft dan aan dat die een geldige pattern moet vinden, maar het liefst een zo kort mogelijke. Om het even aan de hand van een voorbeeld te illustreren :
[ code verwijderd ]
Met betrekking tot de vraag, de pattern is volgens mij gewoon geldig. Is het misschien Replique die dingen raar escapet?
1 2 3 | preg_match('/^(.*?)\, [ ](the|a|de|dr\.|dj\.)$/i', $Name, $Match) ?> |
1 2 3 4 | if (isset($_GET['i'])) {$item = $_GET['i'];} if (isset($_GET['zoek'])) {$zoek = $_GET['zoek'];} ?> |
$_GET[$i]quote:Op woensdag 28 november 2007 15:39 schreef LeeHarveyOswald het volgende:
Werkt toch niet helemaal. Ik heb nu onderstaand, maar hij vindt ze altijd leeg, ook al staat er wat in
[ code verwijderd ]
1 2 3 | $item = (isSet($_GET['i']) ? $_GET['i'] : ""); ?> |
Je hoeft toch alleen de key aan die functie door te geven? $_POST is super-global, dus die heb je ook tot je beschikking binnen de functie.quote:Op donderdag 29 november 2007 10:13 schreef Xcalibur het volgende:
Ik heb een beetje een kip-ei probleem met het checken van een variabele...
Ik controleer alle input met een set functies, die bepalen of een veld leeg mag zijn, alleen numeriek, etc. Ik gooi dus een $_POST variabele in die functie. Als deze variabele niet bestaat krijg ik dus een notice, maar ik check pas OF hij bestaat IN de functie....
Nou kan ik wel een isset om de functie aanroep heenzetten, maar dat vind ik niet mooi
Kan ik dit oplossen?
over de 50 if: Dat kun je makkelijk met een switchquote:Op donderdag 29 november 2007 18:50 schreef DaFrenk het volgende:
Stel dat ik in de database een veld "media type" heb waarin zo'n 50 unieke types staan (zoals CD, LP enz.). Nu wil ik wanneer ik die types ga weergeven op de site i.p.v. tekst een afbeelding neerzetten. Dus als het type CD is dan moet hij /images/cd.gif weergeven. Hoe kan ik dit op een nette en efficiënte manier oplossen? 50 if-statements lijkt me een beetje onhandig.
Zelf zat ik te denken aan een array met alle types en de bijbehorende afbeeldingen. Maar hoe maak ik zoiets aan en hoe haal ik dat er weer uit? Hij moet dus die array doorzoeken naar het media-type en vervolgens de afbeelding die erbij hoort terug geven zodat ik die kan echo'en.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | switch($typ) { case 'lp' : $img = 'lp.gif'; break; case 'cd' : $img = 'cd.gif'; break; default : $img = 'default.gif'; break; } $imgurl = 'path/to/images/'.$img; ?> |
Waarom die tweede s met een hoofdletter? Overigens vind ik het wel een beetje raar dat die functie geen is_set heet. Aangezien een hoop functies wel met is_ beginnen, zoals is_numeric, is_null enzovoorts.quote:Op woensdag 28 november 2007 18:35 schreef Chandler het volgende:
Je kunt nog beter dit doen; dan is de variabel zo ie zo gebruikt.
[ code verwijderd ]
uit het hoofd hé
quote:Op donderdag 29 november 2007 19:25 schreef super-muffin het volgende:
[..]
over de 50 if: Dat kun je makkelijk met een switch
[ code verwijderd ]
En het doorzoeken van een array is niet zo heel moeilijk. Als je de key weet is het een kwestie van $array['key'];
1 2 3 4 5 6 7 8 9 10 11 12 | $arr = array("cd" => "cd.gif", "lp" => "lp.gif", etcetcetc); if (in_array("cd", $arr)) { $img = $arr["cd"]; } else { $img = "standaard.jpg"; } ?> |
of een extra kolom maken in je database met daarin "type.gif" en die ook gewoon in je loop gooienquote:Op donderdag 29 november 2007 19:38 schreef Chandler het volgende:
[..]
Je kunt beter een array aanmaken met bv het volgende
[ code verwijderd ]
dit is maar een opzetje, maar scheelt heel veel IF's
quote:Op donderdag 29 november 2007 19:38 schreef Chandler het volgende:
[..]
Je kunt beter een array aanmaken met bv het volgende
[ code verwijderd ]
dit is maar een opzetje, maar scheelt heel veel IF's
De array met de mapping van type naar plaatje kan je in een config bestandje zetten. Dan kan je de mapping wijzigen zonder echt in de code te knoeien.quote:
Om hem dynamisch te maken moet ik dan zoiets doen?quote:Op donderdag 29 november 2007 19:38 schreef Chandler het volgende:
[..]
:N
Je kunt beter een array aanmaken met bv het volgende
[ code verwijderd ]
dit is maar een opzetje, maar scheelt heel veel IF's
1 2 3 4 5 6 7 8 9 10 11 12 | $arr = array("cd" => "cd.gif", "lp" => "lp.gif", etcetcetc); if (in_array($row['MEDIA'] , $arr)) { $img = $arr[$row['MEDIA']]; } else { $img = "standaard.jpg"; } ?> |
1 2 3 | $img = ( file_exists( $row['media'].'.gif' ) ? $row['media'] : 'default' ) . '.gif'; ?> |
Interessante oplossing! Inderdaad doodsimpel! Even kijken of dat compatible is met alle media types die ik heb.quote:Op donderdag 29 november 2007 22:34 schreef ralfie het volgende:
[ code verwijderd ]
Zoooo, hoef je alleen maar de plaatjes te uploaden van de media die je wil en klaar is DaFrenk. Niks geen gezeik met arrays, en simpel dingen toevoegen of verwijderen. Wel iets trager als je dit honderden keren gaat doen op elke pagina, maar het is wel lekker simpel. En daar hou ik van
tevens tvp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | kees - maand - 2 kees - dag - 3 kees - stad - groningen kees - land - NL erik - jaar - 1988 erik - maand - 3 erik - dag - 12 erik - stad - Amsterdam erik - land - NL mark - jaar - 1977 mark - maand - 12 mark - dag - 22 mark - stad - Antwerpen mark - land - BE |
1 2 3 4 5 | FROM database LEFT JOIN database d ON d.naam = database.naam WHERE d.property = 'land' AND d.value = 'NL' AND database.property = 'stad' GROUP BY database.value |
1 2 3 4 | FROM database db1, database db2 WHERE db1.naam = 'land' AND db2.naam = 'stad' AND db1.titel = db2.titel AND db1.naam = 'NL' GROUP BY database.value |
1 2 3 4 5 | FROM db1 LEFT JOIN db1 D on D.naam = db1.naam WHERE D.property = 'land' AND D.value = 'nl' AND db1.property = 'woonplaats' GROUP by db1.value |
1 2 3 4 5 6 7 8 | FROM gegevens WHERE naam = 'stad' AND titel IN ( SELECT DISTINCT(titel) FROM gegevens WHERE naam = 'land' AND gegeven = 'NL' ) |
Je moet geen left join hebben maar je moet dezelfde tabel twee keer aan elkaar joinen en in de WHERE zeggen dat je van de ene alleen het land wil zien, en van de anders alleen de stadquote:Op vrijdag 30 november 2007 11:33 schreef Chandler het volgende:
Jort, dat werkte niet.
Ik heb net weer een LEFT JOIN geprobeerd maar kwam weer heel wat buitenlandse woonplaatsen tegen
[ code verwijderd ]
Ik kan helaas geen select in een query gebruiken *(geen query in queries)*quote:
Dat heb ik dus geprobeerd, maar het stomme is dat ik dan nog buitenlandse plaatsen krijgquote:Op vrijdag 30 november 2007 11:39 schreef JortK het volgende:
Je moet geen left join hebben maar je moet dezelfde tabel twee keer aan elkaar joinen en in de WHERE zeggen dat je van de ene alleen het land wil zien, en van de anders alleen de stad
Wat voor oud brak mormel gebruik je als server dat je geen nesting kunt toepassen? o|Oquote:Op vrijdag 30 november 2007 13:24 schreef Chandler het volgende:
Ik kan helaas geen select in een query gebruiken *(geen query in queries)*
1 2 3 | FROM gegevens a LEFT JOIN gegevens b ON a.titel = b.titel WHERE a.naam = 'land' AND a.gegeven = 'NL' AND b.naam = 'stad' |
Hmm... ik gebruik feitelijk niet de $_POST array, maar een opgeschoonde array, maar het idee is goedquote:Op donderdag 29 november 2007 18:58 schreef SuperRembo het volgende:
Je hoeft toch alleen de key aan die functie door te geven? $_POST is super-global, dus die heb je ook tot je beschikking binnen de functie.
Opzet is inderdaad goed, maar krijg ook brussel ed steden terug stom database opzet waar ik helaas niets aan kan veranderenquote:Op vrijdag 30 november 2007 13:53 schreef Aquaatje het volgende:
[..]
Wat voor oud brak mormel gebruik je als server dat je geen nesting kunt toepassen?
[ code verwijderd ]
Deze dan?
Het is mogelijk dat je niet nederlandse steden terug krijgt als je titel bij meerdere landen hoort.quote:Op vrijdag 30 november 2007 20:59 schreef Chandler het volgende:
[..]
Opzet is inderdaad goed, maar krijg ook brussel ed steden terug stom database opzet waar ik helaas niets aan kan veranderen
Maar tnx, ik ga het maar even omslachtig doen met 2 queries!
Haal die Group By er eens uit?quote:Op vrijdag 30 november 2007 11:01 schreef Chandler het volgende:
nu wil ik met een query uit deze database alle plaatsnamen halen uit Nederland (NL)
Ik heb getract met een left join query alle namen te pakken waar een property land in zit met de value NL en daarna met distinct de steden er uit te halen, maar dit werkte niet.
voorbeeld:
[ code verwijderd ]
maar helaas kreeg ik 0 resultaten wat doe ik fout?
Zekers, er werken meer dan 100 sites met deze database structuur!quote:Op zaterdag 1 december 2007 09:29 schreef Farenji het volgende:
Is de data in de db wel ok?
Nee, ik had het niet getest.quote:Op zaterdag 1 december 2007 10:03 schreef Chandler het volgende:
[..]
Zekers, er werken meer dan 100 sites met deze database structuur!
@Light, dat levert ook niets op. Maar volgens mij wist je dat al
1 2 3 4 5 6 | FROM database d1 INNER JOIN database d2 ON d2.naam = d1.naam WHERE d1.property = 'stad' AND d2.property = 'land' AND d2.value = 'NL' |
Dat kan het probleem niet zijn want je gebruikt d2.property = 'land' AND d2.value = 'NL', dus spreektaal NL voldoet daar niet aan.quote:Op zaterdag 1 december 2007 11:36 schreef Chandler het volgende:
Ik zie touwens de fout in het database systeem
Aangezien er ook NL voor kan komen bij andere waarden (zoals spreektaal) wordt NL daar ook op gevalideerd en komt deze ook naar boven als zijnde een nederlandse plaats
d2.property = 'land' AND d2.value = 'NL' die staan dus op dezelfde regel.quote:Is het mogelijk om de d2.property en d2.value uit 1 regel te halen? want nu wordt het uit meerdere rijen gehaald (bv 1e rij de property en 3e rij de value?)
1 2 3 4 5 6 | `naam` varchar(20) collate latin1_general_ci NOT NULL, `property` varchar(20) collate latin1_general_ci NOT NULL, `value` varchar(255) collate latin1_general_ci NOT NULL PRIMARY KEY (`naam`,`property`,`value`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; |
1 2 3 4 5 | FROM db1 WHERE property = 'land' GROUP BY naam HAVING Count(*) > 1 |
Wat nou als je er per secconde door heen loopt en steeds als je een grens (dag/maand) over gaat stel je een tellertje bij?quote:Op zaterdag 1 december 2007 16:35 schreef Schepseltje het volgende:
Hallo
ik zoek het volgende.. maar kan het niet vinden..
Ik heb 2 datums, die wil ik van elkaar aftrekken zodat je kunt zien hoeveel jaren, maanden, weken, dagen, uren, minuten en seconden er tussenzitten
dit zou heel simpel zijn wanneer elke maand exact 30 dagen had, maar aangezien het nogal een verschil maakt vanaf welke datum je begint te rekenen, is dit nogal een lastige opgave..
bestaat hier een kant en klare functie voor? ik heb er verschillende geprobeerd, maar geen enkele lijkt goed te werken..
de nerds op tweakers lijken er na 5 pagina's ook niet uit te komen..
ja maar hoeveel seconden heeft een maand? februari heeft er minder dan decemberquote:Op zaterdag 1 december 2007 18:29 schreef WyriHaximus het volgende:
[..]
Wat nou als je er per secconde door heen loopt en steeds als je een grens (dag/maand) over gaat stel je een tellertje bij?
Dat hoef je niet te weten, je zet de startdatum om naar een timestamp, telt er 1 bij op en zet de timestamp weer om naar een datum. Hier zijn functies voor in php. En dit doe je net zo lang tot de timestamp groter of gelijk is als de timestamp van de einddatum. Elke keer check je of de dag-, maand- of het jaargetal is veranderd tov de vorige datum en dit hou je bij.quote:Op zaterdag 1 december 2007 18:47 schreef Schepseltje het volgende:
[..]
ja maar hoeveel seconden heeft een maand? februari heeft er minder dan december
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 | function datediff($date1,$date2) { $timediff =intval( $date1-$date2 ); if ($timediff<0) { $timediff = $timediff * -1; $t=$date1; $date1=$date2; $date2=$t; } // als het verschil negatief is, maak het positief $years = 0; $months = 0; $days=intval($timediff/86400); $remain=$timediff%86400; $hours=intval($remain/3600); $remain=$remain%3600; $mins=intval($remain/60); $secs=$remain%60; for (;;) { $no_of_days_in_month=date("t",mktime(0,0,0,date("m",$date1),0,date("Y",$date1))); // dagen in de maand if ($months>11) { $months = 0; $years++; } if ($no_of_days_in_month<=$days) { $days=$days-$no_of_days_in_month; $date1 = $date1 - $no_of_days_in_month*86400; $months++; } else { break; } } if ($years>0) { $output .= "$years jaar, "; } if ($months>0) { if ($months==1) { $output .= "1 maand, "; } else { $output .= "$months maanden, "; } } if ($days>0) { if ($days==1) { $output .= "1 dag, "; } else { $output .= "$days dagen, "; } } if ($hours>0) { if ($hours==1) { $output .= "1 uur, "; } else { $output .= "$hours uren, "; } } if ($mins>0) { if ($mins==1) { $output .= "1 minuut, "; } else { $output .= "$mins minuten, "; } } if ($secs>0) { if ($secs==1) { $output .= "1 seconde, "; } else { $output .= "$secs seconden, "; } } return substr($output,0,-2); } ?> |
Precies, en als je het op de dag af weet is het laatste stukkie een makkie .Ben lekker wakker vandaag .quote:Op zaterdag 1 december 2007 19:11 schreef Farenji het volgende:
[..]
Dat hoef je niet te weten, je zet de startdatum om naar een timestamp, telt er 1 bij op en zet de timestamp weer om naar een datum. Hier zijn functies voor in php. En dit doe je net zo lang tot de timestamp groter of gelijk is als de timestamp van de einddatum. Elke keer check je of de dag-, maand- of het jaargetal is veranderd tov de vorige datum en dit hou je bij.
Overigens is per seconde door de range loopen wel erg inefficient, je kan beter per 23*60*60 - 1 secondes loopen - een dag is nl nooit korter dan 23 uur en dus zal er nooit meer dan 1 dag verschil zijn.
Als je die data in timestamps hebt dan kun je die toch gewoon van elkaar aftrekken? Dan heb je het verschil tussen de data, in seconden. Da's wel om te rekenen naar minuten-uren-dagen, lijkt mequote:Op zaterdag 1 december 2007 16:35 schreef Schepseltje het volgende:
Hallo
ik zoek het volgende.. maar kan het niet vinden..
Ik heb 2 datums, die wil ik van elkaar aftrekken zodat je kunt zien hoeveel jaren, maanden, weken, dagen, uren, minuten en seconden er tussenzitten
dit zou heel simpel zijn wanneer elke maand exact 30 dagen had, maar aangezien het nogal een verschil maakt vanaf welke datum je begint te rekenen, is dit nogal een lastige opgave..
bestaat hier een kant en klare functie voor? ik heb er verschillende geprobeerd, maar geen enkele lijkt goed te werken..
de nerds op tweakers lijken er na 5 pagina's ook niet uit te komen..
Als je zoals hij zegt er van uit gaat dat er 30 dagen in een maand zitten en 365 dagen in een jaar is dat een makkie. Alleen wil je dit precies doen dan word het in eens een stuk moeilijker, en dat is nou net wat hij wil .quote:Op zaterdag 1 december 2007 21:40 schreef Light het volgende:
[..]
Als je die data in timestamps hebt dan kun je die toch gewoon van elkaar aftrekken? Dan heb je het verschil tussen de data, in seconden. Da's wel om te rekenen naar minuten-uren-dagen, lijkt me
Tot dagen wel, maar hij wil het verder omrekenen naar maanden en jaren. Zie ook 't GoT topic.quote:Op zaterdag 1 december 2007 21:40 schreef Light het volgende:
[..]
Als je die data in timestamps hebt dan kun je die toch gewoon van elkaar aftrekken? Dan heb je het verschil tussen de data, in seconden. Da's wel om te rekenen naar minuten-uren-dagen, lijkt me
ik zou zeggen probeer mijn code eens.. lijkt waterdichtquote:Op zaterdag 1 december 2007 22:01 schreef SuperRembo het volgende:
[..]
Tot dagen wel, maar hij wil het verder omrekenen naar maanden en jaren. Zie ook 't GoT topic.
Als je het verschil in jaren, maanden, dagen, uren etc wil hebben dan zal je bij de jaren moeten beginnen, daarna het aantal resterende maanden etc. Ik vraag me af of je het helemaal waterdicht kan krijgen.
Geeft het geen problemen als je met schrikkeljaren aan de gang gaat?quote:Op zaterdag 1 december 2007 22:06 schreef Schepseltje het volgende:
[..]
ik zou zeggen probeer mijn code eens.. lijkt waterdicht
als ik voor begindatum 0 invul (01-01-1970) dan geeft ie
jaar: 37
maanden: 11
dagen: 0
uren: 22
minuten: 4
seconden: 50
als er ook maar 1 foutje in zit dan moet dat over een periode van 37 jaar wel opvallen
nee want hij berekent voor elke maand het aantal dagen gebaseerd op maand en jaar, dus in dat geval rekent hij voor februari 29 dagenquote:Op zaterdag 1 december 2007 22:09 schreef WyriHaximus het volgende:
[..]
Geeft het geen problemen als je met schrikkeljaren aan de gang gaat?
Mooi stukje code om ff te bewaren dus .quote:Op zaterdag 1 december 2007 22:10 schreef Schepseltje het volgende:
[..]
nee want hij berekent voor elke maand het aantal dagen gebaseerd op maand en jaar, dus in dat geval rekent hij voor februari 29 dagen
ja leuk als je bv iemands exacte leeftijd wil berekenen ofzoquote:Op zaterdag 1 december 2007 22:15 schreef WyriHaximus het volgende:
[..]
Mooi stukje code om ff te bewaren dus .
Ja of wilt weten hoelang het duur voordat je kunt stoppen met werken of wanneer je 50 jaar getrouwt bent. Of what ever zijn zoveel dingen waar dit handig voor is .quote:Op zaterdag 1 december 2007 22:15 schreef Schepseltje het volgende:
[..]
ja leuk als je bv iemands exacte leeftijd wil berekenen ofzo
Wat ik daarmee bedoelde was een geval als dit:quote:Op zaterdag 1 december 2007 22:06 schreef Schepseltje het volgende:
lijkt waterdicht
bij 02/02/2003 - 01/03/2004 zegt iequote:Op zaterdag 1 december 2007 22:28 schreef SuperRembo het volgende:
[..]
Wat ik daarmee bedoelde was een geval als dit:
02/02/2003 - 01/03/2004 is dat
1 jaar (02/02/2003 - 02/02/2004) + 28 dagen (02/02/2004 - 01/03/2004)
of
1 jaar (01/03/2003 - 01/03/2004) + 27 dagen (02/02/2003 - 01/03/2003)
Nou de oplossing met loop is ranzig/lomp. En de 'if ($months>11) { $months = 0; $years++; }' check zou na '$month++' moeten staan.quote:Op zaterdag 1 december 2007 23:14 schreef Schepseltje het volgende:
als iemand nog een fout ziet hoor ik het wel..
1 2 3 4 5 6 7 8 | for (; ; ) { if ($i > 10) { break; } echo $i; $i++; } |
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 | { if ($date1 > $date2) return false; $year1 = date("Y", $date1); $month1 = date("n", $date1); $day1 = date("j", $date1); $year2 = date("Y", $date2); $month2 = date("n", $date2); $day2 = date("j", $date2); $years = $year2 - $year1; $months = $month2 - $month1; $days = $day2 - $day1; if ($days < 0) { --$months; $days += date("t", mktime(0, 0, 0, $month2 + 1, 0, $year2)); } if ($months < 0) { --$years; $months += 12; } return array("years" => $years, "months" => $months, "days" => $days); } |
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | /* Plugin Name: DateDiff Version: 1.0 Plugin URI: http://maseko.com/project/wp-plugins/wp-datediff/ />Description: Calculate the difference between two dates like Microsoft Excel's datedif. Author: maseko Author URI: http://maseko.com/ /> License information Copyright 2005 Released under the GPL license http://www.gnu.org/licenses/gpl.txt This file is a plugin for WordPress WordPress is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ function datediff($start_date,$end_date="now",$unit="D") { $unit = strtoupper($unit); $start=strtotime($start_date); if ($start === -1) { print("invalid start date"); } $end=strtotime($end_date); if ($end === -1) { print("invalid end date"); } if ($start > $end) { $temp = $start; $start = $end; $end = $temp; } $diff = $end-$start; $day1 = date("j", $start); $mon1 = date("n", $start); $year1 = date("Y", $start); $day2 = date("j", $end); $mon2 = date("n", $end); $year2 = date("Y", $end); switch($unit) { case "D": echo intval($diff/(24*60*60)); break; case "M": if($day1>$day2) { $mdiff = (($year2-$year1)*12)+($mon2-$mon1-1); } else { $mdiff = (($year2-$year1)*12)+($mon2-$mon1); } echo $mdiff; break; case "Y": if(($mon1>$mon2) || (($mon1==$mon2) && ($day1>$day2))){ $ydiff = $year2-$year1-1; } else { $ydiff = $year2-$year1; } echo $ydiff; break; case "YM": if($day1>$day2) { if($mon1>=$mon2) { $ymdiff = 12+($mon2-$mon1-1); } else { $ymdiff = $mon2-$mon1-1; } } else { if($mon1>$mon2) { $ymdiff = 12+($mon2-$mon1); } else { $ymdiff = $mon2-$mon1; } } echo $ymdiff; break; case "YD": if(($mon1>$mon2) || (($mon1==$mon2) &&($day1>$day2))) { $yddiff = intval(($end - mktime(0, 0, 0, $mon1, $day1, $year2-1))/(24*60*60)); } else { $yddiff = intval(($end - mktime(0, 0, 0, $mon1, $day1, $year2))/(24*60*60)); } echo $yddiff; break; case "MD": if($day1>$day2) { $mddiff = intval(($end - mktime(0, 0, 0, $mon2-1, $day1, $year2))/(24*60*60)); } else { $mddiff = intval(($end - mktime(0, 0, 0, $mon2, $day1, $year2))/(24*60*60)); } echo $mddiff; break; default: print("{Datedif Error: Unrecognized \$unit parameter. Valid values are 'Y', 'M', 'D', 'YM'. Default is 'D'.}"); } } ?> |
1 2 3 | $now = date("Y-m-d"); $td = "2006-9-24"; $tde = "2007-12-21"; echo " Over ";datediff("now","$tde","M");echo " maanden en ";datediff("now", "$tde", "MD");echo " dagen ben ik klaar! (ongeveer dan..)" ?> |
nee, elke loop is voor een maand, en bij elke maand moet hij opnieuw kijken hoeveel dagen die maand heeftquote:Op zondag 2 december 2007 00:38 schreef SuperRembo het volgende:
Die loop is ranzig omdat als de datums 10 jaar uit elkaar liggen je minsten 8*12=48 keer voor niets de loop doorloopt en dus 48*3=144 keer date() voor niets gebruikt. Beetje jammer.
Ik zou 't zo aanpakken.
[ code verwijderd ]
Misschien nog niet helemaal bug-vrij, maar ik denk dat 't een goede basis is voor een elegante oplossing. Er zit nog geen ondersteuning voor tijd in, maar die is er zo aan toe te voegen.
quote:Op maandag 3 december 2007 15:58 schreef Chandler het volgende:
Vraagje, of iemand hier een bestaande routine voor weet.
Stel je hebt een grote lap tekst met spaties en tekens. Nu wil ik graag dat iedere regel wordt gecontrolleerd op het aantal spaties en stel alle regels beginnen minimaal 4 spaties vanaf links dan wil ik deze spaties verwijderen.
Hopelijk begrijpt iemand mij :P
1 2 3 | ltrim() ?> |
quote:Op maandag 3 december 2007 16:53 schreef DaFrenk het volgende:
Grmbl.. hoe krijg ik PHP zover dat hij geldbedragen als "7.50" schrijft en niet als "7.5"? Dus dat hij wel die 0 toevoegt?
1 2 3 | printf('%2f', $bedrag); ?> |
number_format();quote:Op maandag 3 december 2007 16:53 schreef DaFrenk het volgende:
Grmbl.. hoe krijg ik PHP zover dat hij geldbedragen als "7.50" schrijft en niet als "7.5"? Dus dat hij wel die 0 toevoegt?
1 2 3 4 5 6 7 8 | $money1 = 68.75; $money2 = 54.35; $money = $money1 + $money2; // echo $money will output "123.1"; $formatted = sprintf("%01.2f", $money); // echo $formatted will output "123.10" ?> |
Probeer een van de twee eensquote:Op maandag 3 december 2007 17:07 schreef DaFrenk het volgende:
Oké! Bedankt.. welke van de twee moet ik nu gebruiken?
http://nl2.php.net/number_format werkt het makkelijkst jaquote:
1 2 3 4 5 6 7 8 9 | news.item.edit.php news.item.delete.php news.category.insert.php news.category.edit.php news.category.delete.php etc. |
1 2 | news.category.php |
http://nl2.php.net/class is een hele goede om mee te beginnenquote:Op maandag 3 december 2007 21:26 schreef PiRANiA het volgende:
ik snap eigenlijk nog steeds niet wat classes zijn, wat ze doen en waar ze goed voor zijn...
ik heb ze in 3 jaar nog nooit gebruikt iig...
wie legt het me uit?
Daarnaast zijn deze ook erg handig:quote:Op maandag 3 december 2007 21:32 schreef JortK het volgende:
[..]
http://nl2.php.net/class is een hele goede om mee te beginnen
Ik doelde eingelijk meer op een functie dat van het volgende voorbeeldquote:
1 2 3 4 5 6 7 8 9 10 | "ae" => "United Arab Emirates", "af" => "Afghanistan", "ag" => "Antigua and Barbuda", "ai" => "Anguilla", "al" => "Albania", "am" => "Armenia", "an" => "Netherlands Antilles", "ao" => "Angola", "aq" => "Antarctica", |
1 2 3 4 5 6 7 8 9 10 | "ae" => "United Arab Emirates", "af" => "Afghanistan", "ag" => "Antigua and Barbuda", "ai" => "Anguilla", "al" => "Albania", "am" => "Armenia", "an" => "Netherlands Antilles", "ao" => "Angola", "aq" => "Antarctica", |
htmlentities?quote:Op dinsdag 4 december 2007 16:02 schreef markiemark het volgende:
Hooii lieve vrienden! Heb in mijn mysql database een aantal teksten staan. Deze zijn in vershchillende talen. Het probleem is dat deze de pure teksten zijn dus inclusief alle haakjes en streepjes, niet omgezet naar &..; code. Als ik deze weergeef in mijn browser komen er in Firefox blokjes met vraagtekentjes te staan en in internet explorer kleine vierkantjes. Hoe kan ik dit oplossen. De codering in de database is utf-8- unicode.
Hoe kan ik dit oplossen?
moet daar dan nog iets achter? Zie http://nl2.php.net/manual/en/function.htmlentities.php hier dat er de nodige aanvullingen kunnen zijn..quote:
Probeer eerst maar gewoon eensquote:Op dinsdag 4 december 2007 16:06 schreef markiemark het volgende:
[..]
moet daar dan nog iets achter? Zie http://nl2.php.net/manual/en/function.htmlentities.php hier dat er de nodige aanvullingen kunnen zijn..
1 2 3 | htmlentities($string); ?> |
Er zit ook html in de database.. Die wordt dan ook omgezet naar tekst.. en das niet de bedoeling..quote:Op dinsdag 4 december 2007 16:07 schreef JortK het volgende:
[..]
Probeer eerst maar gewoon eens
[ code verwijderd ]
Als je met utf-8 wil werken moet *alles* utf-8 zijn, niet alleen je database. Dus zorgen dat je pagina ook in utf-8 is (meta content-type tag goed zetten en vooral ook zorgen dat utf-8 als content-type in de page headers wordt meegestuurd) en in php zorgen dat de mbstring extentie is geinstalleerd en alleen de utf-8 veilige functies gebruiken. Alle standaard string functies zoals strlen etc raken in de war van utf-8 en geven verkeerde resultaten als je niet expliciet instelt dat de utf-8 versie gebruikt moet worden, dus bijv door mb_strlen te gebruiken ipv strlen.quote:Op dinsdag 4 december 2007 16:02 schreef markiemark het volgende:
Hooii lieve vrienden! Heb in mijn mysql database een aantal teksten staan. Deze zijn in vershchillende talen. Het probleem is dat deze de pure teksten zijn dus inclusief alle haakjes en streepjes, niet omgezet naar &amp;amp;..; code. Als ik deze weergeef in mijn browser komen er in Firefox blokjes met vraagtekentjes te staan en in internet explorer kleine vierkantjes. Hoe kan ik dit oplossen. De codering in de database is utf-8- unicode.
Hoe kan ik dit oplossen?
Dat is dus eigenlijk niet te doen.. met htmlentities() werkt het ook niet omdat dan de html code ook wordt omgezet.. hoe kan ik er voor zorgen dat de tekens wel om worden gezet, maar de html niet?quote:Op dinsdag 4 december 2007 21:48 schreef Farenji het volgende:
[..]
Als je met utf-8 wil werken moet *alles* utf-8 zijn, niet alleen je database. Dus zorgen dat je pagina ook in utf-8 is (meta content-type tag goed zetten en vooral ook zorgen dat utf-8 als content-type in de page headers wordt meegestuurd) en in php zorgen dat de mbstring extentie is geinstalleerd en alleen de utf-8 veilige functies gebruiken. Alle standaard string functies zoals strlen etc raken in de war van utf-8 en geven verkeerde resultaten als je niet expliciet instelt dat de utf-8 versie gebruikt moet worden, dus bijv door mb_strlen te gebruiken ipv strlen.
Dat wordt volgens mij een lastig verhaalquote:Op woensdag 5 december 2007 11:03 schreef markiemark het volgende:
[..]
Dat is dus eigenlijk niet te doen.. met htmlentities() werkt het ook niet omdat dan de html code ook wordt omgezet.. hoe kan ik er voor zorgen dat de tekens wel om worden gezet, maar de html niet?
Tja, dat is en blijft de vraag hé.quote:Op dinsdag 4 december 2007 21:32 schreef HuHu het volgende:
Ligt er een beetje aan wat je vervolgens met die zoekwoorden wil gaan doen. Wil je kijken wel woord afzonderlijk het meeste voor komt, dan kun je ze apart opslaan. Maar wil je ook relaties tussen zoekwoorden weten, dan moet je weer andere dingen bijhouden.
Ik ben altijd ervoor om je database relationeel te houden.quote:Op woensdag 5 december 2007 12:15 schreef Chandler het volgende:
[..]
Tja, dat is en blijft de vraag hé.
Maar zou jij relaties leggen? of juist niet?
En hier istie dan, als iemand er nog nut voor zietquote:Op dinsdag 4 december 2007 21:21 schreef Chandler het volgende:
Tnx Aquaatje, ik zal even een routine schrijven.
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 | function checkSpaces($in) { $inNew = explode("\n", $in); $inItems = count($inNew); $inMin = 1000; for ($x = 0; $x < $inItems; $x++) { for ($y = 0; $y < strlen($inNew[$x]); $y++) { if (substr($inNew[$x], $y, 1) != " ") { $inMin = $y; break; } } } return $inMin; } function removeSpaces($in, $remove) { $inNew = explode("\n", $in); $inItems = count($inNew); for ($x = 0; $x < $inItems; $x++) { $inNew[$x] = substr($inNew[$x], $remove, strlen($inNew[$x]) - $remove); } return implode("\n", $inNew); } $str = " hello world moi hoi lol test test test tes"; <h2>Original</h2> <pre> echo checkSpaces($str); echo "\r\n" . $str; </pre> <h2>Altered</h2> <pre> echo removeSpaces($str, checkSpaces($str)); </pre> ?> |
Het kan in ieder geval ietsje korter . Qua snelheid zou de volgende het denk ik moeten winnen, maar niet omdat het écht efficienter is.quote:Op woensdag 5 december 2007 13:35 schreef Chandler het volgende:
[..]
En hier istie dan, als iemand er nog nut voor ziet
[ code verwijderd ]
als het sneller kan wil ik dit ook wel horen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function ltrimSpaceColumns($in) { if(preg_match_all('|^ +|m', $in, $matches)) { $min = 0x7fffffff; foreach($matches[0] as $match) { if(($newMin = strlen($match)) < $min) { $min = $newMin; } } if($min > 0) { $in = preg_replace('|^ {'.$min.'}|m', '', $in); } } return $in; } ?> |
1 2 3 4 5 6 7 8 9 10 11 | FROM client AS c WHERE c.DateAdded != 0 ORDER BY c.DateAdded DESC LIMIT ".$max." SELECT CONCAT('Updated client: ',c.Name) AS Description, c.DateUpdated AS Date FROM client AS c WHERE c.DateUpdated != 0 ORDER BY c.DateUpdated DESC LIMIT ".$max." |
1 2 3 4 5 6 7 8 | CONCAT('New client: ',c1.Name) AS DescriptionNew, c1.DateAdded, CONCAT('Updated client: ',c2.Name) AS DescriptionUpdated, c2.DateUpdated, CONCAT('Bladiebla client: ',c3.Name) AS DescriptionBladiebla, c3.DateBladiebla FROM client AS c1, client AS c2, client AS c3 WHERE c1.DateAdded != 0 AND c2.DateUpdated != 0 AND c3.DateBladiebla != 0 ORDER BY c.DateAdded DESC, c2.DateUpdated DESC, c3.DateBladiebla DESC LIMIT $max |
Zoiets?quote:Op woensdag 5 december 2007 21:59 schreef Geqxon het volgende:
Een enorm simpele vraag...
1 2 3 4 5 | FROM client AS c WHERE c.DateAdded != 0 OR c.DateUpdated != 0 ORDER BY (CASE c.DateUpdated WHEN 0 THEN c.DateAdded ELSE c.DateAdded END) DESC LIMIT ".$max." |
Er zijn clients zonder aanmaakdatum, dit is uit een oude systeemmigratie. Om deze uit het logboek te vermijden staat er deze CASE bij.quote:Op woensdag 5 december 2007 23:25 schreef SuperRembo het volgende:
[..]
Zoiets?
[ code verwijderd ]
Warom zijn die datum niet gewoon NULL als er geen datum in staat? (Dan kan je ook gewoon IFNULL gebruiken in plaats van die CASE).
Zijn er ook clients die niet toegevoegd zijn (DateAdded = 0)?
Is het niet handiger om de DateUpdated bij het toevoegen gelijk te maken aan DateAdded? (Dat sorteert makkelijker en sneller)
Dan moet je gewoon een union / union all gebruiken.quote:Op woensdag 5 december 2007 23:31 schreef Farenji het volgende:
Ongetest:
zorg dat in elke query de kolomnamen hetzelfde zijn en zet alle queries onderaan in 1 string, gescheiden door puntkomma.Voor deze string uit. Als het goed is heb je dan alles in 1 recordset.
quote:Op woensdag 5 december 2007 23:31 schreef Farenji het volgende:
Ongetest:
zorg dat in elke query de kolomnamen hetzelfde zijn en zet alle queries onderaan in 1 string, gescheiden door puntkomma.Voor deze string uit. Als het goed is heb je dan alles in 1 recordset.
Top! Union was exact wat ik zocht. Dank u.quote:Op donderdag 6 december 2007 00:12 schreef SuperRembo het volgende:
[..]
Dan moet je gewoon een union / union all gebruiken.
Als je zowel de laatste 5 toevoegingen en de laatste 5 wijzigingen wilt zien dan heb je minimaal 2 queries nodig, omdat je niet kunt sorteren op 2 dingen. Als je een toevoeging ook als een wijziging beschouwt (en bij toevoegen dus wijzigdatum en toevoegdatum gelijk maakt) dan kun je met 1 query toe.quote:Op woensdag 5 december 2007 21:59 schreef Geqxon het volgende:
Ik kan natuurlijk in een loop gaan werken, maar ik vind het het mooist om zo veel als mogelijk in de query te doen, en dat in één keer in een array te stoppen. Of kan dit niet?
Het totaalproduct, mocht dat het duidelijker maken. Het product van drie (in de applicatie vijftien) verschillende queries:quote:Op donderdag 6 december 2007 00:31 schreef Light het volgende:
[..]
Als je zowel de laatste 5 toevoegingen en de laatste 5 wijzigingen wilt zien dan heb je minimaal 2 queries nodig, omdat je niet kunt sorteren op 2 dingen. Als je een toevoeging ook als een wijziging beschouwt (en bij toevoegen dus wijzigdatum en toevoegdatum gelijk maakt) dan kun je met 1 query toe.
Hoe je bij 15 queries komt is me niet helemaal duidelijk.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | | Description | Date | +-----------------------------------+------------+ | Added client x to company y | 05-12-2007 | | Added client a to company y | 04-12-2007 | | Added client d to company y | 03-12-2007 | | Added client c to company y | 02-12-2007 | | Added client b to company z | 02-12-2007 | | Added company y | 01-12-2007 | | Added company ... | 30-10-2007 | | Added company ... | 30-10-2007 | | Added company ... | 11-07-2007 | | Added company ... | 05-03-2007 | | Changed information on company y | 02-12-2007 | +-----------------------------------+------------+ |
1 2 3 4 | $query = mysql_query("SELECT * FROM vrijwilligers_gegevens WHERE YEAR(datum) = YEAR('$jaar') AND geslacht = '$geslacht' AND nationaliteit = '$nationaliteit' AND YEAR(geboortedatum) = YEAR('$geboortedatum')"); ?> |
1 2 3 4 5 6 7 8 9 | if(isset($year)){ $query_where.=" AND year(datum)='".mysql_real_escape_string($year)."'"; } if(isset($geslacht)){ $query_where.=" AND geslacht='".mysql_real_escape_string($geslacht)."'"; } $query=mysql_query("SELECT * FROM vrijwilligers_gegevens WHERE bla=bla".$query_where); ?> |
Klopt, die van mij had nog iets beter gekundquote:Op woensdag 5 december 2007 14:13 schreef autocue het volgende:
[..]
Het kan in ieder geval ietsje korter . Qua snelheid zou de volgende het denk ik moeten winnen, maar niet omdat het écht efficienter is.
[ code verwijderd ]
Als het overigens relatief vaak voorkomt dat een stuk tekst geen 'spatie kolom' heeft, dan zou jouw aanpak een stuk sneller kunnen worden (en zijn dan deze) wanneer je stopt met zoeken bij het vinden van een regel met $inMin == 0.
Vraagje; hoe zou je kunnen controlleren of een regel leeg is? in de zin van er zit een enter in je codequote:Op woensdag 5 december 2007 14:13 schreef autocue het volgende:
[..]
Het kan in ieder geval ietsje korter :P. Qua snelheid zou de volgende het denk ik moeten winnen, maar niet omdat het écht efficienter is.
[ code verwijderd ]
Als het overigens relatief vaak voorkomt dat een stuk tekst geen 'spatie kolom' heeft, dan zou jouw aanpak een stuk sneller kunnen worden (en zijn dan deze) wanneer je stopt met zoeken bij het vinden van een regel met $inMin == 0.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | moi hoi lol test test test tes hello world moi hoi lol test test test tes"; |
Wat dan als er alleen een spatie op een regel staat, dan matcht ie al niet meer maar het is wel een lege regel.quote:Op donderdag 6 december 2007 20:47 schreef HuHu het volgende:
Matchen op een dubbele \n, dus \n\n.
Ik heb uit mijn css een regeltje bovenaan weggehaald waar iets over utf-8 stond.. Dat heb ik er uit gehaald. Nu zie ik geen problemen meer.quote:Op woensdag 5 december 2007 11:30 schreef JortK het volgende:
[..]
Dat wordt volgens mij een lastig verhaal
Door (bijvoorbeeld ) te forceren dat de matches waarbij de lengte van de whitespace gecheckt wordt niet enkel whitespace is. Er zal dus een niet whitespace karakter moeten volgen na de spaties, dus alleen de regex zal aangepast moeten worden en er moet verwezen worden naar een andere matching groep (namelijk die voor de spaties). Zoals volgt ongeveer .quote:Op donderdag 6 december 2007 20:17 schreef Chandler het volgende:
[..]
Vraagje; hoe zou je kunnen controlleren of een regel leeg is? in de zin van er zit een enter in je code
(voorbeeld)
[ code verwijderd ]
Nu zie je opeens een 'lege' regel.. die moet je dus overslaan? maar hoe kan ik die afvangen?
";
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function ltrimSpaceColumns($in) { if(preg_match_all('|^( *)\S|m', $in, $matches)) { $min = 0x7fffffff; while(($pair = each($matches[1])) && $min > 0) { if(($newMin = strlen($pair[1])) < $min) { $min = $newMin; } } if($min > 0) { $in = preg_replace('|^ {'.$min.'}|m', '', $in); } } return $in; } ?> |
Werkt idd helemaal perfect, nu heb ik nog 1 andere vraag.quote:Op vrijdag 7 december 2007 00:41 schreef autocue het volgende:
[..]
Door (bijvoorbeeld ) te forceren dat de matches waarbij de lengte van de whitespace gecheckt wordt niet enkel whitespace is. Er zal dus een niet whitespace karakter moeten volgen na de spaties, dus alleen de regex zal aangepast moeten worden en er moet verwezen worden naar een andere matching groep (namelijk die voor de spaties). Zoals volgt ongeveer .
[ code verwijderd ]
Daar zou ik dan maar eens wat aan doen, een programmeur kan niet zonder.quote:Op vrijdag 7 december 2007 10:37 schreef Chandler het volgende:
* Chandler verstopt zich, snapt amper een bal van regex...
Post eens wat goede danquote:Op vrijdag 7 december 2007 11:05 schreef Farenji het volgende:
[..]
Daar zou ik dan maar eens wat aan doen, een programmeur kan niet zonder.
Er zijn zat tutorials te vinden.
Het is ook een van de leukere dingen, vind ikquote:Op vrijdag 7 december 2007 12:24 schreef Tuvai.net het volgende:
En regular expressions vind ik inderdaad een van de moeilijkere dingetjes op gebied van programmeren.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <tr> <td width="100">data</td> <td width="100">data</td> <td width="100">data</td> </tr> <tr> <td width="100">data</td> <td width="100">data</td> <td width="100">data</td> </tr> <tr> <td width="100">data</td> <td width="100">data</td> <td width="100">data</td> </tr> </table> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $query = 'SELECT veld1, veld2, veld3 FROM .....'; $result = mysql_query($query, .......); ... echo '<table>'; while (list($veld1, $veld2, $veld3) = mysql_fetch_array($result)) { echo '<tr><td>'.$veld1.'</td><td>'.$veld2.'</td>'.$veld3.'</td></tr>'; } echo '</table>'; ?> |
1 2 3 | ...($arraynaam = mysql_fetch_array($result)... ?> |
1 2 3 | $veld1 = $arraynaam['veld1']; ?> |
Zal het straks direct uitproberen, bedankt!quote:Op zondag 9 december 2007 12:40 schreef twi het volgende:
Als elke rij in de tabel ook een rij in de database is, dan loopt deze code gewoon netjes alle rijen langs totdat hij er geen meer vindt.
1 2 3 | echo '<tr><td>Veld 1<br />Veld2</td><td>'.$veld1.'<br />'.$veld2.'</td></tr>'; ?> |
1 2 3 4 5 6 7 8 9 10 | <tr> <td>40001<br />1,99<br />179,00</td> <td>40001<br />1,99<br />179,00</td> </tr> <tr> <td>40002<br />2,49<br />239,00</td> <td>40002<br />2,49<br />239,00</td> </tr> </table> |
1 2 3 4 5 6 | ID Prijs Omschrijving ------------------------------- 1 9,95 Omschrijving 1 2 8,95 Omschrijving 2 3 12,95 Omschrijving 3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 | ID: 1 Prijs: 9,95 Omschrijving: Omschrijving 1 ------------------------------- ID: 2 Prijs: 8,95 Omschrijving: Omschrijving 2 ------------------------------- ID: 3 Prijs: 12,95 Omschrijving: Omschrijving 3 ------------------------------- |
Dan zal het als nog niet werken, dan krijg ik alles onderelkaar, dus per TR krijg ik dan 1 TD.quote:Op zondag 9 december 2007 13:09 schreef twi het volgende:
In de eerste td moet je dan ook de titel zetten die je aan het veld geeft (ID, Prijs) of wat de omschrijving van het veld ernaast ook is), niet nog een keer de variabele :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <tr> <td>40001<br />1,99</td> </tr> <tr> <td>40002<br />2,49</td> </tr> <tr> <td>40003<br />2,79</td> </tr> <tr> <td>40004<br />2,99</td> </tr> </table> |
1 2 3 4 5 6 7 8 | <tr> <td>40001<br />1,99</td> <td>40002<br />2,49</td> <td>40003<br />2,79</td> </tr> <tr> <td>40004<br />2,99</td> <td></td> <td></td> </tr> </table> |
1 2 3 4 5 6 7 | | x | x | x | |------------ | x | x | x | |------------ | x | | | ------------ |
1 |
Met dat ie een white-space character niet pakt, bedoel je dan dat je [.- ] hebt geprobeerd?quote:Op maandag 10 december 2007 21:45 schreef Geqxon het volgende:
In de hoop dat hier iemand wat meer van regular expression weet.... dit is wat mij so far gelukt is:
[ code verwijderd ]
Dus dat er op die positie een . (punt) of een - (dash) mag staan. Maar ik wil ook dat hij op deze positie spaties accepteert? Een white-space character pakt hij helaas niet.
Volgens mij werkt het zo welquote:Op maandag 10 december 2007 21:45 schreef Geqxon het volgende:
In de hoop dat hier iemand wat meer van regular expression weet.... dit is wat mij so far gelukt is:
[ code verwijderd ]
Dus dat er op die positie een . (punt) of een - (dash) mag staan. Maar ik wil ook dat hij op deze positie spaties accepteert? Een white-space character pakt hij helaas niet. :)
1 |
quote:Op dinsdag 11 december 2007 14:00 schreef Geqxon het volgende:
Heb je al eens wildcats geprobeerd? % ?
1 2 3 4 5 6 | # arghh... mysqldump: Couldn't find table: "PPD%" mysqldump -u user -p -B mydb --no-data --where='tables LIKE "XXX%"' # dumpt gewoon de hele DB |
1 |
Heb het in de shell gedaan:quote:Op dinsdag 11 december 2007 14:20 schreef Farenji het volgende:
Ik zou hier een simpel perl scriptje voor schrijven...
1 2 | show tables; |
1 2 | xargs echo mysqldump -u root -p mydb --no-data --tables |
ActiveState perl is er voor windows bakkenquote:Op dinsdag 11 december 2007 14:31 schreef Geqxon het volgende:
Perl is inderdaad een goeie, daar acht ik ook al aan. Je moet dan alleen wel op een linux systeem werken.
Ik gebruik daar altijd Powerpoint voor, dan maak ik een printscreen van die sheet en die plak ik in wordquote:Op woensdag 12 december 2007 13:30 schreef markiemark het volgende:
Waar kan ik mijn database ontwerp het beste in visualiseren? Heb hem wel op papier, maar dat staat zo lullig in mijn stage verslag. Ik ken Visio, maar dat vind ik niet zo heel handig.. Zijn daar geen eenvoudige tooltjes voor?
hehe ok.. die van mij is aardig uitgebreid, een tabelletje of 30. als ik een lijntje trek vanuit de ene tabel naar de andere, blijft deze dan gelinkt wanneer ik een tabel versleep?quote:Op woensdag 12 december 2007 13:41 schreef JortK het volgende:
[..]
Ik gebruik daar altijd Powerpoint voor, dan maak ik een printscreen van die sheet en die plak ik in word
Hmmz kan ik inderdaad ook nog wel eens proberen..quote:Op woensdag 12 december 2007 15:50 schreef DaFrenk het volgende:
Je kan ook Access gebruiken, daar kan je via de relatie-manager ook een duidelijk beeld scheppen van je database. Of eventueel een simpel "mindmap" programma, daar kan je ook lijntjes trekken van en naar "wolkjes".
Contab is de *nix versie van geplande taken in windows. Als je de bak zelf host zal ik de docs eens gaan lezen en anders ff met je hosting mailen .quote:Op woensdag 12 december 2007 22:15 schreef Maartel het volgende:
Goedenavond, ik ben als n00b aan het klungelen met dit scriptje... nu heb ik de database en alle tabellen aangemaakt, maar ik loop vast op deze instructies:
# Add a user to the mm2_users table
# Add a crontab for recenttracker.php.
van de eerste weet ik niet hoe ik het moet doen, van de 2e weet ik niet eens wat een crontab is
Iemand die het toevallig leuk vindt om me wat verder op weg te helpen?
Start een mysql console en tik in "grant all on mm2_users.* to <username>@localhost identified by '<password>';"quote:Op woensdag 12 december 2007 22:15 schreef Maartel het volgende:
Goedenavond, ik ben als n00b aan het klungelen met dit scriptje... nu heb ik de database en alle tabellen aangemaakt, maar ik loop vast op deze instructies:
# Add a user to the mm2_users table
Crontab is het mechanisme onder unix/linux om periodiek / om de zoveel tijd een bepaald commando uit te voeren.quote:# Add a crontab for recenttracker.php.
dan krijg ikquote:Op donderdag 13 december 2007 00:45 schreef Farenji het volgende:
[..]
Start een mysql console en tik in "grant all on mm2_users.* to <username>@localhost identified by '<password>';"
Ipv <username> tik je natuurlijk de username (zonder de < en >) en ipv <password> tik je een zelfgekozen password (dat je wel moet onthouden, dat zal je wsch ergens in de config van het script moeten invullen.)
hoe start ik een 'shell'? ik weet nog net hoe ik een tabel moest openen in mijn PhpMyAdmin, maar ik weet niet wat een shell isquote:Crontab is het mechanisme onder unix/linux om periodiek / om de zoveel tijd een bepaald commando uit te voeren.
Start een shell en tik in "man crontab", lees die info goed door, en tik daarna in de shell "crontab -e" en maak dan de benodigde wijzigingen. Je moetdus "recenttracker.php" uitvoeren; dit is een php script dus dat wordt alleen door je webserver uitgevoerd. Als commando in je crontab (zie de manual!) wordt dat dan iets als "wget http://hostnaam.van.je.server/pad/recenttracker.php".
Succes!
Wat voor hosting heb je? Heb je wel shell access? Anders kun je de crontab meestal vergeten, tenzij je een webinterface hebt waar je dat kan instellen.quote:Op donderdag 13 december 2007 18:13 schreef Maartel het volgende:
[..]
dan krijg ik
1044 - Access denied for user: 'blabla@localhost' to database 'mm2_users'
[..]
hoe start ik een 'shell'? ik weet nog net hoe ik een tabel moest openen in mijn PhpMyAdmin, maar ik weet niet wat een shell is
http://www.flexwebhosting.nl/hosting.htmlquote:Op donderdag 13 december 2007 19:51 schreef Farenji het volgende:
[..]
Wat voor hosting heb je? Heb je wel shell access? Anders kun je de crontab meestal vergeten, tenzij je een webinterface hebt waar je dat kan instellen.
Wat betreft die user, misschien heb je maar 1 user en kun je geen extra users aanmaken. In dat geval zal je die user moeten gebruiken voor het script.
Shell access is via een ssh client inloggen op de server, via de command line dus. Maar inderdaad zit er blijkbaar cronjobs mogelijkheden bij je account, vraag even aan je provider hoe dat werkt; waarschijnlijk is er ergens een control panel voor.quote:Op donderdag 13 december 2007 20:13 schreef Maartel het volgende:
[..]
http://www.flexwebhosting.nl/hosting.html
en dan de goedkoopste.. er staat wel iets cron-achtigs bij..
Waaronder zou ik die shellaccess moeten vinden? ook in PhpMyAdmin?
ik heb ook wel eens een site gemaakt op een server van flexweb. deze bieden geen shell aan..quote:Op donderdag 13 december 2007 20:58 schreef Farenji het volgende:
[..]
Shell access is via een ssh client inloggen op de server, via de command line dus. Maar inderdaad zit er blijkbaar cronjobs mogelijkheden bij je account, vraag even aan je provider hoe dat werkt; waarschijnlijk is er ergens een control panel voor.
Zolang het bij PHP related dingen blijft en het niet storend is zal het geen probleem zijn. En zelfs goed zijn voor de beginnen mensen die willen weten hoe ze dingen kunnen doen .quote:Op vrijdag 14 december 2007 01:11 schreef colourAgga het volgende:
Mocht iemand nog interesse hebben dan heb ik even de source voor een random webicon online gezet. Ik zal in de toekomst hier wel even wat meer linken naar scripts/classes/tutorials die ik online zet. Beschouw het niet als spam (ik zie het als leermateriaal) en als dat wel zo is hoor ik dat wel.
Random Webicon http://liebmi.ch/laboratorium/webicon/
Een zeer simpel random webicon script.
Ondanks dat het een simpel voorbeeld is, of juist omdat het een voorbeeld is, heb ik er wel wat op aan te merken.quote:Op vrijdag 14 december 2007 01:11 schreef colourAgga het volgende:
Random Webicon http://liebmi.ch/laboratorium/webicon/
Een zeer simpel random webicon script.
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 | <div id="container"> <!-- Begin Header --> <div id="header"> <?php include ("header.php") ?> </div> <!-- Einde Header --> <!-- Begin navigatie --> <div id="navigatie"> <?php if($_GET['navigatie']) // Hier neemt hij de pagina mee in de URL { include($_GET['navigatie'].'.php'); // Hier include hij de pagina die in de URL is meegenomen } else { $navigatie = "navigatie"; include("navigatiemenu.php"); // Hier wordt main.php geinclude } ?> </div> <!-- Einde navigatie --> <!-- Begin content --> <div id="content"> <?php if($_GET['page']) // Hier neemt hij de pagina mee in de URL { include($_GET['page'].'.php'); // Hier include hij de pagina die in de URL is meegenomen } else { $page = "main"; include("main.php"); // Hier wordt main.php geinclude } ?> </div> <!-- Einde content --> |
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 | color : #333; background-color: #FFFFFF; background-image:url(images/header4.jpg); width: 898px; border: 1pxsolid #FF0000; height: 138px; float: left; margin : 0 0 2px 0; } #navigatie { color : #333; margin : 0 2px 2px 0; height : 25px; width : 898px; float: inherit; background-color: #000000; padding-left: 5px; padding-top: 5px; } #content { float: left; color: #999999; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; border : 1px solid #c00000; margin : 0 0 2px 0; height :475px; width : 898px; display : inline; background-color: #000000; overflow:auto; padding-left: 5px; padding-top: 10px; scrollbar-arrow-color: #918e8e; scrollbar-face-color: #c00000; scrollbar-highlight-color: #FFFFFF; scrollbar-3dlight-color: #0A439A; scrollbar-shadow-color: #445C95; scrollbar-darkshadow-color: #0A439A; scrollbar-track-color: #d6d6e3; |
Wat moet ik nou doen daarmee? Ik ben dus echt wel een dummy en ik wil het allemaal leren maar dit snap ik niet zo goed eerlijk gezegdquote:Line 48, Column 68: document type does not allow element "link" here.
…et" type="text/css" href="menu/halfmoontabs.css"/>✉
The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).
One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error).
1 |
1 |
Een bestand hoort 1 head en 1 body te hebben. En niet halverwege de body nog weer een head. Die CSS-linkjes vanaf regel 33 kun je beter naar boven halen.quote:Op zaterdag 15 december 2007 16:57 schreef RHCPeter het volgende:
Ok dat is nu idd weg
Nu ff naar de andere fouten. Zijn er nu 17. Best pittig. Hoop dat ik jullie nog meer mag vragen mocht ik er niet uitkomen
Die snap ik niet? Hoezo naar boven halen?quote:Op zaterdag 15 december 2007 17:48 schreef Light het volgende:
[..]
Een bestand hoort 1 head en 1 body te hebben. En niet halverwege de body nog weer een head. Die CSS-linkjes vanaf regel 33 kun je beter naar boven halen.
Al je referenties naar css files in de <head> zetten, bovenin dus.quote:Op zaterdag 15 december 2007 19:02 schreef RHCPeter het volgende:
[..]
Die snap ik niet? Hoezo naar boven halen?
Volgens mij heb je geen idee hoe floats werken en gebruik je ze waar ze helemaal niet nodig zijn. Het heeft iig weinig met php te maken, maar alles met [CSS] voor dummies - Deel 7.quote:Mocht iemand weten waarom het menu niet zichtbaar is bij safari en bij FF alleen het bovenste witte racdje hoor ik het echt heeeeeeeeel graag H
Bij de link die ik je gaf is je website compleet XHTML compatible:quote:Op zaterdag 15 december 2007 19:00 schreef RHCPeter het volgende:
Mjah morgen weer een dag. Heb nu nog 13 fouten. Maar het menu is nog niet terug bij FF.
Krijg het nu niet voor elkaar
Nee, je gebruikt de elementen waarvoor ze bedoeld zijn. Zo kunnen mensen die software gebruiken om alsnog je website te kunnen lezen zoals screenreaders er van uit gaan dat die software de site ook goed interpreteert. In het echte leven gebruik je nou eenmaal ook niet je aansteker om op te koken terwijl het best zal gaan.quote:Op zaterdag 15 december 2007 23:55 schreef Geqxon het volgende:
"Semantisch correct" is de grootste bullshit die ik ooit gehoord heb.
bronquote:If we call ourselves professionals, we owe it to our clients, their clients, and ourselves, to do our job properly. A chef must care about health, a builder must care about safety, and we must care about accessibility.
;')quote:Op zaterdag 15 december 2007 23:55 schreef Geqxon het volgende:
"Semantisch correct" is de grootste bullshit die ik ooit gehoord heb.
Ik mag hopen dat mijn punt duidelijk is. Dat een website semantisch correct is biedt geen meerwaarde als de website in IE6 amper te openen is, en in Safari slecht gerendered wordt.quote:
Inderdaad, XHTML is veel grotere bullshit dan semantisch correcte htmlquote:Op zondag 16 december 2007 13:56 schreef JeRa het volgende:
Het afdoen van semantisch correctheid met 'bullshit' doet mij dan ook alleen getuigen van een gebrek aan inzicht
quote:Op zondag 16 december 2007 16:04 schreef colourAgga het volgende:
In ieder geval, laten we weer verder gaan met PHP want daar is dit topic voor.
Mensen nog gekeken naar die simpele template klasse? Kan die nog simpeler dan dit?
1 |
dus in str_Needle is str de 'hungarian prefix'quote:Op zondag 16 december 2007 17:15 schreef Farenji het volgende:
Prefixes in de variable names waar je aan zou moeten kunnen zien wat voor type waarde er in de variable zit (object, boolean, string, int etc). Vrij gevaarlijk bij loosely typed languages zoals php omdat dat type nooit vaststaat.
Ja.quote:Op zondag 16 december 2007 17:34 schreef qu63 het volgende:
[..]
dus in str_Needle is str de 'hungarian prefix'
en dat is stom omdat str_Needle ook iets anders kan zijn dan een string?quote:
Klopt. In PHP kun je sowieso niet eisen dat iets van een bepaald type is. Een integer meegeven als een string gevraagd wordt (of andersom) wordt gewoon toegestaan. Daarnaast is het stom, omdat je nu heel lastig van type kunt veranderen. Als je besluit dat iets van een int naar een double gaat, dan kun je alle verwijzingen naar die variabele gaan aanpassen.quote:Op zondag 16 december 2007 18:27 schreef qu63 het volgende:
[..]
en dat is stom omdat str_Needle ook iets anders kan zijn dan een string?
Safari 2 is wat achterhaald ondertussen. En in 3.0.4 werkt het menu niet goed, de >> die voor de tekst komen, zorgen ervoor dat de tekst naar de volgende regel gaat. Zonder dat het vakje groter wordt overigens. Maar dat had je zelf vast ook al wel gezien.quote:Op zondag 16 december 2007 13:53 schreef colourAgga het volgende:
Welke versie van safari gebruik jij dan? In 2.0.4 werkt het in ieder geval
Nooit is ook niet helmaal meer waar in php5. Je kunt bij functies wel type hinting gebruiken voor objecten en arrays. Niet voor dingen als int of string.quote:Op zondag 16 december 2007 17:15 schreef Farenji het volgende:
Prefixes in de variable names waar je aan zou moeten kunnen zien wat voor type waarde er in de variable zit (object, boolean, string, int etc). Vrij gevaarlijk bij loosely typed languages zoals php omdat dat type nooit vaststaat.
1 2 3 4 | $lastdaylastyear = mktime(0,0,0,12,31,$year-1); $lastdaylastweek = strtotime('+' . $week-1 . 'weeks', $lastdaylastyear); return strtotime("next " . $day, $lastdaylastweek) ; |
Ik gebruik meestal:quote:Op zondag 16 december 2007 18:27 schreef qu63 het volgende:
[..]
en dat is stom omdat str_Needle ook iets anders kan zijn dan een string?
Deze is simpel aan te passen :quote:Op maandag 17 december 2007 00:13 schreef Geqxon het volgende:
Weet iemand hoe ik alle 7 dagen van een bepaald weeknummer en jaartal kan verkrijgen?
Ik gebruik op het moment het volgende stukje code:
[ code verwijderd ]
Het punt is echter dat deze natuurlijk niet werkt tijdens de jaarwisseling. Iemand?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function WeekCheck($date , $gid = ""){ # huidige dag $currentDay = date ("w", $date); # om te beginnen wil ik de eerste dag van de week eruit halen (maandag) $monday = date("d", $date) - ($currentDay - 1); # maken van een array met daarin dagen en data van de huidige week (m tm f) for ($i=0; $i < 5; $i++){ $day = mktime(0,0,0,date("m", $date),($monday + $i),date("y", $date)); $week[$i] = date("d-m-Y", $day); } return $week; } ?> |
Mijn opmerking over bad coding practice ging neit over hungarian prefixes maar over de method replace() waarbij de betekenis van de 2e parameter sterk af hangt van de 3e parameter: de content zelf of de naam van een bestand waar de content in staat.quote:Op maandag 17 december 2007 15:27 schreef colourAgga het volgende:
Ik zal de hungarian prefixes er ook wel uithalen, is iets wat ik normaal gesproken voornamelijk voor mezelf gebruik omdat ik dan duidelijk maak wat ik opsla in een variabele Zelf ben ik het er niet mee eens dat het bad coding practice is. Het is pas bad coding practice als je er een gevoel van veiligheid aan gaat verbinden.
Yep, we zijn allemaal anders. En da's maar goed ook. Bij vergelijken met een constante zou ik trouwens true == $clean schrijven, dan gaat php vanzelf zeuren als je een = vergeet. Het voorkomt vaag gedrag.quote:Op maandag 17 december 2007 21:44 schreef colourAgga het volgende:
De clean() functie doet het, niets meer en niets minder dan newlines en dubbele spaties strippen Omdat ik een $clean == true duidelijker vindt dan een ( $clean ). Persoonlijke voorkeur die bij iedereen anders is.
Das wel een goede tip. Ik ben zelf overigens gewend geraakt aan perl ranzigheid als "doSomething() unless $test;" of nog erger: "$test or doSomething();"quote:Op dinsdag 18 december 2007 10:46 schreef Light het volgende:
[..]
Yep, we zijn allemaal anders. En da's maar goed ook. Bij vergelijken met een constante zou ik trouwens true == $clean schrijven, dan gaat php vanzelf zeuren als je een = vergeet. Het voorkomt vaag gedrag.
Als er tussen 2 woorden eerst een regeleinde of 2 spaties staan dan staan ze daarna opeens aan elkaar vast. Lijkt me niet handig.quote:Op maandag 17 december 2007 21:44 schreef colourAgga het volgende:
De clean() functie doet het, niets meer en niets minder dan newlines en dubbele spaties strippen
Overbodig en dus lelijk vind ikquote:Omdat ik een $clean == true duidelijker vindt dan een ( $clean ). Persoonlijke voorkeur die bij iedereen anders is.
Dat kan in php ook, doSomething() or die()quote:Op dinsdag 18 december 2007 10:58 schreef Farenji het volgende:
[..]
Das wel een goede tip. Ik ben zelf overigens gewend geraakt aan perl ranzigheid als "doSomething() unless $test;" of nog erger: "$test or doSomething();"
Daar zou je dan weer wel een functie voor kunnen schrijvenquote:Op dinsdag 18 december 2007 14:48 schreef SuperRembo het volgende:
Maak er dan true == (false == $var) van
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |