http://php.net/manual/en/function.error-reporting.phpquote:Op vrijdag 9 oktober 2015 14:01 schreef broer het volgende:
Helaas weet ik niet precies wat je daarmee bedoelt. Sorry.
Als ik in mijn browser de foutmeldingen aanzet, krijg ik bij de overgang tussen de twee pagina's een '500: internal server error'. Als ik het mail-deel uit de tweede pagina haal, krijg ik die foutmelding niet.
Unit testen is gewoon een algemeen concept in software development. Wat je er mee doet is 'eenheden' testen. In het geval van een taal als PHP zijn dat vaak functies / methodes. Je doet dan tests waarbij je de functie aanroept met bepaalde parameters en kijkt of de waarde die je terug krijgt ook daadwerkelijk de verwachte uitkomst is.quote:Op vrijdag 9 oktober 2015 21:17 schreef Robuustheid het volgende:
Ik heb geprobeerd mij in te lezen over PHP unit tests, maar na aantal tutorials verder, begrijp ik nog steeds de apeballen van.
Iemand die mij kan bijpraten?
Dank je wel!quote:
Dat is het meestal. Maar als je je error-reporting uit hebt staan is het zoeken naar een speld in een hooiberg.quote:Op vrijdag 9 oktober 2015 21:53 schreef broer het volgende:
[..]
Dank je wel!
Ik ben er inmiddels uit, trouwens. Het ging om een haakje of een accolade of iets anders stoms.
Een goede IDE kan het leven dan wel makkelijker maken. Maar als je daarop moet vertrouwen en anders niets kunt, klopt er ook iets niet.quote:Op zaterdag 10 oktober 2015 00:11 schreef KomtTijd... het volgende:
[..]
Dat is het meestal. Maar als je je error-reporting uit hebt staan is het zoeken naar een speld in een hooiberg.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $dir = "../../media/HardeSchijf/Film"; $filelist = [ ]; $n=0; if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if($file !== "." and $file !== ".." and $file !== "desktop.ini" and $file !== "index.php" and $file !== "lost+found") { $filelist[$n] = "$file"; $n += 1; } } closedir($dh); } } sort($filelist); foreach($filelist as $value) { echo "<a href='" . $dir. "/" . $value . "/" . $value . ".avi'>" . $value . "</a></br>"; } |
Maar ik kan ze dus wel oplijsten? -edit: oh, het kan dus wel oplijsten omdat dit server-side gebeurt met PHP, maar niet linken omdat dat browser-side gebeurt.quote:Op zondag 18 oktober 2015 19:34 schreef mstx het volgende:
Je kan nooit linken naar bestanden buiten de webroot. Je zou een symbolic link binnen de webroot kunnen maken die naar die map verwijst.
http://php.net/manual/en/function.readfile.phpquote:Op zondag 18 oktober 2015 19:53 schreef Ser_Ciappelletto het volgende:
[..]
Maar ik kan ze dus wel oplijsten? -edit: oh, het kan dus wel oplijsten omdat dit server-side gebeurt met PHP, maar niet linken omdat dat browser-side gebeurt.
Anyhow, kan ik dat op zo'n manier doen dat de variabelen bruikbaar blijven? Bijv:
Symlink maken: ./film naar /media/Hardeschijf/Film
In php: echo "<a href='"./film/" . $value . "/" . $value . ".avi'>" . $value . "</a></br>"
Die methode werkt al niet, heb ik gemerkt. Maar misschien op een andere manier?
Het is een lokale mediaserver, dus dat is geen probleem.quote:Op maandag 19 oktober 2015 19:48 schreef Darkomen het volgende:
[..]
http://php.net/manual/en/function.readfile.php
Let wel goed op je beveiliging, zeker als de webserver vanaf buiten bereikbaar is,
Weet je héél zeker dat alles lokaal is en altijd lokaal zal blijven?quote:Op maandag 19 oktober 2015 20:01 schreef Ser_Ciappelletto het volgende:
[..]
Het is een lokale mediaserver, dus dat is geen probleem.
Ik heb het overigens opgelost door de harde schijf te mounten in de webroot. Dat is minder geklooi.
Waarom zou dat niet zo zijn? Dan zou ik eerst mijn router zo moeten configureren dat 'ie naar die server verwijst en zo, en dat heb ik nooit gedaan en ben ik ook niet van plan.quote:Op maandag 19 oktober 2015 20:07 schreef KomtTijd... het volgende:
[..]
Weet je héél zeker dat alles lokaal is en altijd lokaal zal blijven?
Dit klinkt namelijk echt als een disaster waiting to happen...
De kans is groter dat ik over twee weken het hele systeem opnieuw moet installeren omdat het allemaal kapot is.quote:Op maandag 19 oktober 2015 20:18 schreef KomtTijd... het volgende:
Maar als je over een jaar toch een poortje open zet omdat je iets extern wilt testen of zo, is dus je complete systeem world readable...
1 2 3 4 5 6 7 8 9 10 11 | $vraagact= "SELECT * FROM " . $q; $output = $conn->query($vraagact); echo "<table><thead>Actief</thead>"; if ($output->num_rows > 0) { while($row = $output->fetch_assoc()) { echo "<tr><td>" . $row["Tijd"] . "</td><td>" . $row["Indiciatief"] . "</td><td>" . $row["Conjunctief"]."</td><td>" . $row["Imperatief"]."</td><td>" . $row["Infinitief"]. "</td><td>" . $row["Participium"]."</td></tr>"; } } else { echo "0 results"; } echo "</table>"; |
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.Bij "Futurum" en "Fut. Exactum" zouden nog zes woorden moeten staan, die er niet staan. In MySQL staat het correct. Het veranderen van 'Fut' in iets anders heeft geen zin. Ik heb echt geen idee waar dit verder aan kan liggen.
Er zijn trouwens vijf tabellen met ongeveer dezelfde inhoud, die hetzelfde gedrag vertonen: telkens valt de eerste kolom weg bij 'futurum' en 'fut. exactum'.
quote:Op zaterdag 24 oktober 2015 22:03 schreef Ser_Ciappelletto het volgende:
Volgende vraagje: als ik met PHP een MySQL tabel opvraag en wegschrijf, krijg ik maar een deel van de tabel.
De code:
[ code verwijderd ]
Het resultaat:"Correct" in MySQL is wel een vage term. Wat staat er precies?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.Bij "Futurum" en "Fut. Exactum" zouden nog zes woorden moeten staan, die er niet staan. In MySQL staat het correct. Het veranderen van 'Fut' in iets anders heeft geen zin. Ik heb echt geen idee waar dit verder aan kan liggen.
Er zijn trouwens vijf tabellen met ongeveer dezelfde inhoud, die hetzelfde gedrag vertonen: telkens valt de eerste kolom weg bij 'futurum' en 'fut. exactum'.
De tabel zoals hij hoort, met de twaalf entries die op de site wegvallen.quote:Op zondag 25 oktober 2015 12:47 schreef Light het volgende:
[..]
"Correct" in MySQL is wel een vage term. Wat staat er precies?
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.
Ik kreeg dat niet gekopieerd vanuit Putty.quote:Op zondag 25 oktober 2015 12:59 schreef KomtTijd... het volgende:
En een screenshot van een render van de output van je script is ook nogal vaag, dump dan gewoon het resultaat van je query.
Ik zie hier in ieder geval geen html-zooi in. Bij iets dat door een browser niet goed gerenderd wordt, is dat een van de eerste dingen waar ik aan denk.quote:Op zondag 25 oktober 2015 12:59 schreef KomtTijd... het volgende:
En een screenshot van een render van de output van je script is ook nogal vaag, dump dan gewoon het resultaat van je query.
quote:Op zaterdag 24 oktober 2015 22:03 schreef Ser_Ciappelletto het volgende:
Volgende vraagje: als ik met PHP een MySQL tabel opvraag en wegschrijf, krijg ik maar een deel van de tabel.
De code:
[ code verwijderd ]
Het resultaat:In je code gebruik jeSPOILEROm 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.Bij "Futurum" en "Fut. Exactum" zouden nog zes woorden moeten staan, die er niet staan. In MySQL staat het correct. Het veranderen van 'Fut' in iets anders heeft geen zin. Ik heb echt geen idee waar dit verder aan kan liggen.
Er zijn trouwens vijf tabellen met ongeveer dezelfde inhoud, die hetzelfde gedrag vertonen: telkens valt de eerste kolom weg bij 'futurum' en 'fut. exactum'.maar de kolom heet "Indicatief". Je probeert dus een niet-bestaande kolom uit te lezen.
1
2
3<?php
$row["Indiciatief"]
?>
Ah verrek, je hebt helemaal gelijk. Kut, wat een blunder.quote:Op zondag 25 oktober 2015 13:11 schreef Light het volgende:
[..]
In je code gebruik je
[ code verwijderd ]
maar de kolom heet "Indicatief". Je probeert dus een niet-bestaande kolom uit te lezen.
Je kunt een LEFT JOIN gebruiken.quote:Op dinsdag 27 oktober 2015 13:51 schreef wobbel het volgende:
Ik heb weer 'n kut vraag...hoe doe ik een join maar dan omgekeerd
Tabel 1: Klanten met een klant ID
Tabel 2: Bestellingen gekoppeld aan klant ID
Ik wil nu alle klanten krijgen die géén bestelling hebben. Doe ik dit ook gewoon met een JOIN ofzo? Want die moet ik altijd koppelen op de ID's en dat wil ik nu juist niet
Jawel, je wilt wel joinen op id's, maar daarna wil je alle regels waar die join resultaten oplevert er weer uit filteren.quote:Op dinsdag 27 oktober 2015 13:51 schreef wobbel het volgende:
Ik heb weer 'n kut vraag...hoe doe ik een join maar dan omgekeerd
Tabel 1: Klanten met een klant ID
Tabel 2: Bestellingen gekoppeld aan klant ID
Ik wil nu alle klanten krijgen die géén bestelling hebben. Doe ik dit ook gewoon met een JOIN ofzo? Want die moet ik altijd koppelen op de ID's en dat wil ik nu juist niet
1 2 3 4 | SELECT klant.* FROM klant LEFT JOIN bestelling ON klant.id = bestelling.klant_id WHERE bestelling.id IS NULL; |
Je kan dan beter WHERE NOT EXISTS() gebruiken.quote:Op dinsdag 27 oktober 2015 14:12 schreef Aether het volgende:
[..]
Je kunt een LEFT JOIN gebruiken.
Voor rijen die niet gekoppeld konden worden krijg je NULL terug waarop je kunt filteren.
Dan heb je een dependant subquery en waarschijnlijk minder optimalisatiemogelijkheden. Bij kleine aantallen (tientallen) maakt dat niet uit, bij grotere aantallen klanten en/of bestellingen zou ik het eerst vergelijken om te zien welke oplossing beter presteert.quote:Op dinsdag 27 oktober 2015 14:37 schreef TwenteFC het volgende:
[..]
Je kan dan beter WHERE NOT EXISTS() gebruiken.
SELECT K.ID
FROM Klanten AS K
WHERE NOT EXISTS ( SELECT 1 FROM Bestellingen AS B WHERE B.KlantID=K.ID )
Waarom? Als je een rare oplossing moet zoeken, dan betekend het meestal dat je iets fout doet.quote:Op woensdag 28 oktober 2015 16:50 schreef Ser_Ciappelletto het volgende:
Pagina.php zet ik liever niet in de webroot. Kan ik een verwijzing maken vanuit die andere map?
Het gaat om een paar duizend records, dus op zich valt het mee. Maar bedankt voor het meedenken, zoeken met NULL functioneert inderdaad Weer wat geleerd vandaag.quote:Op woensdag 28 oktober 2015 19:17 schreef Light het volgende:
[..]
Dan heb je een dependant subquery en waarschijnlijk minder optimalisatiemogelijkheden. Bij kleine aantallen (tientallen) maakt dat niet uit, bij grotere aantallen klanten en/of bestellingen zou ik het eerst vergelijken om te zien welke oplossing beter presteert.
Kun je die span niet op iets anders pakken dan dat het het 12e item is? Iets met een id, class of ander attribuut zou het leven veel makkelijker maken, dan ben je niet meer volledig afhankelijk van de volgorde waarin de items staan.quote:Op donderdag 29 oktober 2015 08:06 schreef wobbel het volgende:
[..]
Het gaat om een paar duizend records, dus op zich valt het mee. Maar bedankt voor het meedenken, zoeken met NULL functioneert inderdaad Weer wat geleerd vandaag.
Gaan we ons vandaag eens inlezen in DOMDocument...moet een 12e span uitlezen uit een HTML document
Geen idee of het een rare oplossing is en of ik iets fout doe.quote:Op woensdag 28 oktober 2015 20:25 schreef Darkomen het volgende:
[..]
Waarom? Als je een rare oplossing moet zoeken, dan betekend het meestal dat je iets fout doet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | SELECT ... CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN MID( `contents`, LOCATE( '<blockquote>', `contents` ) + 12, (LOCATE( '</blockquote>', `contents` ) - LOCATE( '<blockquote>', `contents` )) - 12 ) ELSE '' END AS post_quote, CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN CONCAT_WS( LEFT( `contents` , LOCATE( '<blockquote>', `contents`) - 1), ' ', RIGHT( `contents` , LENGTH(`contents`) - (LOCATE( '</blockquote>', `contents` ) + 12)) ) ELSE `contents` END AS post_contents, ... FROM fok_topic, fok_post WHERE ... |
1 2 3 4 5 6 | <blockquote><font size="1" face="verdana, aial, helvetica">quote:</font> <hr>Feedback is geen vrijblijvend "post hier wat je wilt"-forum. Als je denkt grappig te moeten zijn, je postaantal te moeten opkrikken of om een andere reden een post plaatst die in de FB-context totaal geen nut heeft, loop je de kans dat je post verwijderd wordt.<hr> </blockquote>Nog steeds geldt in Feedback het "post dan niks"-principe: als je niks te melden hebt, ga dan wat anders doen. Er moeten nog te veel compleet nutteloze posts verwijderd worden... |
Jup, klopt Ik was vergeten te vermelden dat het niet naar een PHP script gaat. Deze data wordt aan een Sphinx zoekserver index gevoed en ik kan helaas niets manipuleren. Dit moet dus in de query worden gedaan.quote:Op zaterdag 31 oktober 2015 20:03 schreef Monolith het volgende:
Volgens mij heeft MySQL nog steeds niet echt lekkere support voor regular expressions, maar dit is een schoolvoorbeeld van een situatie waarbij je die wilt gebruiken.
Is het geen optie om gewoon het geheel te selecteren en de regex replace in PHP te doen?
Sphinx ken ik niet echt als search engine, maar heeft die niet net als bijvoorbeeld ElastisSearch en SOLR gewoon filtermogelijkheden op de gevoede data?quote:Op zaterdag 31 oktober 2015 20:06 schreef bondage het volgende:
[..]
Jup, klopt Ik was vergeten te vermelden dat het niet naar een PHP script gaat. Deze data wordt aan een Sphinx zoekserver index gevoed en ik kan helaas niets manipuleren. Dit moet dus in de query worden gedaan.
Het is bij Sphinx mogelijk om gebruik te maken van een xml pipe. Dan kan ik de data zelf aan de indexer voeden vanuit een php script. Dit is echter zeer traag en daarom geen optie. Helaas is het maar een simpele server en als er heel veel tegelijk uitgevoerd moet worden vertraagt de boel.quote:Op zaterdag 31 oktober 2015 20:11 schreef Monolith het volgende:
[..]
Sphinx ken ik niet echt als search engine, maar heeft die niet net als bijvoorbeeld ElastisSearch en SOLR gewoon filtermogelijkheden op de gevoede data?
Is zoiets geen optie?quote:Op zaterdag 31 oktober 2015 20:17 schreef bondage het volgende:
[..]
Het is bij Sphinx mogelijk om gebruik te maken van een xml pipe. Dan kan ik de data zelf aan de indexer voeden vanuit een php script. Dit is echter zeer traag en daarom geen optie. Helaas is het maar een simpele server en als er heel veel tegelijk uitgevoerd moet worden vertraagt de boel.
Dank, ga ik even checken. Het is mijn eigen server, denk dat ik die mogelijkheid wel heb. En anders creëer ik dezequote:Op zaterdag 31 oktober 2015 20:27 schreef Monolith het volgende:
[..]
Is zoiets geen optie?
https://github.com/hholzgra/mysql-udf-regexp
Als je tenminste UDFs kunt gebruiken op je server.
Zoiets?quote:Op maandag 2 november 2015 20:36 schreef Keiichi het volgende:
Ik heb een bestan met op elke lijn 2 of meerdere bestandsnamen. Deze zijn gescheiden door een spatie en spaties in bestandsnamens geescaped. (Voor de nieuwsgierigen, output van fdupes -1 -r -S ./)
Ik wil deze lijnen met preg_split splitten, maar ik breek m'n hersens over hoe ik met die escaped spatie om moet gaan. Hoe krijg ik dit voor elkaar?
Zelfs $files = str_getcsv($line," ","","\\"); biedt geen uitkomst.. (Waarom herkent ie de backslashes niet?)
1 2 3 4 5 | <?php $s = '123.php 456\ 789.php ab\ c\ def.php'; $a = preg_split( '~(?<!\\\)\\s~', $s ); print_r($a); ?> |
1 2 3 4 5 6 | Array ( [0] => 123.php [1] => 456\ 789.php [2] => ab\ c\ def.php ) |
1 | <img class="rde_img_smiley" src="http://i.fok.nl/s/clown.gif" width="15" height="15" alt=":+" /> |
1 | <img data-src="http://www.voorbeeld.com/bla.jpg" style="visibility:hidden;" /> |
1 2 3 | <?php $result = preg_replace('/<img(?<!class="rde_img_smiley")[^>]+\>/i', "[afbeelding verwijderd]", $post_contents); ?> |
Some people, when confronted with a problem, thinkquote:Op zaterdag 7 november 2015 14:14 schreef bondage het volgende:
Ik zit met een regex probleempje en aangezien ik nogal faal als het aankomt op reguliere expressies kom er niet uit
Wat ik wil is plaatjes uit posts filteren, echter moeten plaatjes met een bepaalde class wel blijven staan.
Dit moet blijven:
[ code verwijderd ]
Dit moet weg:
[ code verwijderd ]
Ik gebruik deze regex maar die haalt alle afbeeldingen weg:
[ code verwijderd ]
Iemand idee hoe dit op te lossen?
En dan moet je er nog rekening mee houden dat die class kan worden voorafgegaan en/of gevolgd door een andere class. En dat een afbeelding zonder die class gevolgd kan worden door een met die class, dan moet je wel de goede afbeelding verwijderen. En over een half jaar moet je ook nog snappen wat de regex doet (ook als het er niet in commentaar bij staat).quote:Op zaterdag 7 november 2015 18:22 schreef Nattekat het volgende:
Als je al RE's wilt gebruiken, dan hoef je enkel te kijken of de string 'class=*"rde_smiley"' (niet) bevat.
Dus .*(class\=).*(\"rde_smiley\").*
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |