| 1 2 3 4 5 6 7 8 9 10 11 12 | CREATE TABLE `last_reacties` ( `id` int(6) NOT NULL auto_increment, `ber_id` int(6) NOT NULL default '0', `onderwerp` varchar(35) NOT NULL default '', `tijd` varchar(14) NOT NULL default '', `soort` varchar(20) NOT NULL default '', `IP` varchar(16) NOT NULL default '', UNIQUE KEY `id` (`id`), KEY `ber_id` (`ber_id`) ) TYPE=MyISAM AUTO_INCREMENT=0 ; ?> |
| 1 2 3 4 5 6 7 8 | INSERT INTO `last_reacties` VALUES (8, 59, 'Toevallig kinderporno downloaden st', '20060108185624', 'nieuws', '82.156.1'); INSERT INTO `last_reacties` VALUES (9, 6, 'Yogurtlu Corba', '20060108185915', 'recepten', '82.156.118.119'); INSERT INTO `last_reacties` VALUES (10, 60, '''Al-Zarqawi ontsnapt aan Amerikaans', '20060108191002', 'nieuws', '82.156.1'); INSERT INTO `last_reacties` VALUES (11, 60, '''Al-Zarqawi ontsnapt aan Amerikaans', '20060108191023', 'nieuws', '82.156.1'); INSERT INTO `last_reacties` VALUES (12, 38, 'nieuws', '20060108191131', 'nieuws', '82.156.118.119'); INSERT INTO `last_reacties` VALUES (13, 60, '''Al-Zarqawi ontsnapt aan Amerikaans', '20060108191216', 'nieuws', '82.156.11'); INSERT INTO `last_reacties` VALUES (14, 60, '''Al-Zarqawi ontsnapt aan Amerikaans', '20060108191526', 'nieuws', '82.156.1'); |
| 1 |
| 1 2 3 4 5 6 | if (mktime(0,0,0, date("d"), date("m"), date("Y") - 18) > mktime(0,0,0, $_POST['day'], $_POST['month'], $_POST['year'])) { // ouder } |
Ik snap je vraag wel, maar je voorbeeld van een fout niet. Je hebt het over id's 10, 11, 13 en 14 waarvan 10 de oudste is (zover ik kan zien). Toch zeg je dat ie 13 teruggeeft?quote:Op maandag 9 januari 2006 00:09 schreef saban het volgende:
Chandler of Roonaan geen oplossing voor mij ? =)
Zover ik weet kan je niet ordenen in je group statements toch?quote:Op maandag 9 januari 2006 01:35 schreef JeRa het volgende:
[..]
Ik snap je vraag wel, maar je voorbeeld van een fout niet. Je hebt het over id's 10, 11, 13 en 14 waarvan 10 de oudste is (zover ik kan zien). Toch zeg je dat ie 13 teruggeeft?
ik gebruik deze op de weblog om de laatste (in mijn geval unieke) reacties te laten zien:quote:Op zondag 8 januari 2006 19:26 schreef saban het volgende:
Ik heb de volgende tabel
[ code verwijderd ]
Met de volgende data erin;
[ code verwijderd ]
Ik heb een query om de laatste 10 'inserts' uit te lezen, samengevoegt (GROUP) op ber_id;
[ code verwijderd ]
Hij leest inderdaad de laatste 10 inserts uit, ook voegt (GROUP) hij het samen op ber_id, maar hij GROUP't ze precies andersom.
Als ik 2 records achter elkaar heb met dezelfde ber_id, dan laat hij de oudste (eerste) record zien, in plaats van de laatste.
Kijk naar id 13 en 14. Hij voegt 10, 11, 13 en 14 samen omdat ze dezelfde ber_id hebben, maar in plaats van 14 te laten zien, laat hij mij 13 zien.
Iemand een beter/juiste query voor me ?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | r.site_id, b.header, MAX(r.time) AS tijd FROM b JOIN reacts AS r ON (b.id = r.site_id) WHERE r.status = 'active' AND b.status = 'active' AND r.time > (UNIX_TIMESTAMP() - 259200) GROUP BY r.site_id, b.header ORDER BY `tijd` DESC LIMIT 0 , 8 |
Waarom is id 10 het oudste ? Ik sorteer op tijd, en id 14 heeft het hoogste waarde (20060108191526), maar hij geeft helaas id 13 terug.quote:Op maandag 9 januari 2006 01:35 schreef JeRa het volgende:
[..]
Ik snap je vraag wel, maar je voorbeeld van een fout niet. Je hebt het over id's 10, 11, 13 en 14 waarvan 10 de oudste is (zover ik kan zien). Toch zeg je dat ie 13 teruggeeft?
| 1 2 3 4 5 | FROM `last_reacties` GROUP BY onderwerp ORDER BY id DESC LIMIT 0 , 10 |
Ik gebruik nu de MAX functie, het werkt al iets beter, maar nog steeds niet 'bug-loos'. Helaas ben ik onbekend met JOINS.quote:Op maandag 9 januari 2006 09:09 schreef JeRa het volgende:
Kun je niet de query gebruiken die rickmans aanbiedt?
En ik snap 'm nu wel weer, het komt er op neer dat je geen ORDER kunt doen vóór een GROUP BY om zo de groepering aan te passen. Je kunt ORDER wel gebruiken om de resultset aan te passen though. Gebruik de MAX()-(group)functie om de hoogste waarde te vinden
Hier heb je geen JOIN voor nodig. Ik heb je tabel geprobeerd en ik merk op dat je het veld 'tijd' als een VARCHAR opslaat. Dit type werkt niet zo geweldig met de MAX()-functie. Beter sla je die tijd op als een Unix Timestamp (epoch), dit is het aantal seconden vanaf 1 januari 1970. Deze kun je in MySQL opvragen als UNIX_TIMESTAMP() en neemt als UNSIGNED INT maar 4 bytes in beslag, dit in tegenstelling tot jouw huidige veld dat een veelvoud van dat inneemt.quote:Op maandag 9 januari 2006 12:21 schreef saban het volgende:
[..]
Ik gebruik nu de MAX functie, het werkt al iets beter, maar nog steeds niet 'bug-loos'. Helaas ben ik onbekend met JOINS.
| 1 2 3 4 5 | FROM last_reacties GROUP BY ber_id ORDER BY mtijd DESC LIMIT 0 , 10 |
| 1 2 3 4 5 | function ugly() { GLOBAL $uncleFester, $causinIt; } ?> |
thnxquote:Op maandag 9 januari 2006 14:12 schreef Ro�a� het volgende:
In principe zou je die variabelen mee moeten geven bij de functie aanroep als argumenten. Als dat echt niet mogelijk is, zou je kunnen overwegen om define() te gebruiken als het constanten betreft, of als het écht niet anders kan onderstaande te gebruiken:
[ code verwijderd ]
-r-
Er zijn meerdere opties.quote:Op maandag 9 januari 2006 14:09 schreef ToBe het volgende:
Super simpele vraag misschien, maar ik kom ergens niet uit.
Ik heb een dir met daarin een 3tal bestanden.
index.php hoofdpagina, met alle opmaak
config.inc.php include file met allemaal variabelen met settings, geinclude in index.php
functions.inc.php include file met allemaal functies die gebruik maken van de variabelen uit config.inc.php, geinclude in index.php
Als ik bovenstaande doe, dan zijn de waardes van de variabelen leeg. De functies nemen de variableen niet over die gedefinieerd staan in config.inc.php. Hoe regel ik dat zij dat wel overnemen? Iets global oid maken?
Thnx peeps, ik neem het mee in overweging. Even spelen wat ik het lekkerst vindquote:Op maandag 9 januari 2006 14:27 schreef Ro�a� het volgende:
$parts = explode('/', $_SERVER['QUERY_STRING']);
define('WOORD1', isset($parts[0]) ? $parts[0] : 'default');
if(WOORD1 == 'woord') {
}
-r-
Ehm, ik weet niet of het zo'n briljant plan is om misbruik te maken van constanten. Constanten horen constant te zijn, en niet variabelquote:Op maandag 9 januari 2006 14:27 schreef Ro�a� het volgende:
$parts = explode('/', $_SERVER['QUERY_STRING']);
define('WOORD1', isset($parts[0]) ? $parts[0] : 'default');
if(WOORD1 == 'woord') {
}
-r-
Ja en nee. Ik vind het beter dan het overbodig rondslingeren van ellenlange argumentlijsten omdat een serie telkens terugkeerende runtime sermi-constanten mee te geven.quote:Op maandag 9 januari 2006 14:32 schreef JeRa het volgende:
[..]
Ehm, ik weet niet of het zo'n briljant plan is om misbruik te maken van constanten. Constanten horen constant te zijn, en niet variabelnu definiëer je een 'constante' die elke request anders is, daar is natuurlijk weinig constant aan en is mijns inziens nogal vies.
Beter geef je voor een functie de benodigde variabelen via de parameters door, eventueel via een volledig $config-object.
Nee, alleen voor échte constanten waarvan ik niet verwacht dat ze binnen afzienbare tijd zullen veranderen doe ik op die manier. Voor de rest doe ik het zo (voorbeeldje):quote:Op maandag 9 januari 2006 14:37 schreef Ro�a� het volgende:
[..]
Ja en nee. Ik vind het beter dan het overbodig rondslingeren van ellenlange argumentlijsten omdat een serie telkens terugkeerende runtime sermi-constanten mee te geven.
Doe jij dan nooit:
define('LANG', @$_REQUEST['lang'] == 'nl' ? 'nl' : 'en');
Of soortgelijk?
-r-
Dan moet ik waarschijnlijk heel mijn database structuur ombouwen. Of ik moet het omslachtig doen door een extra tabel te maken met enkel de laatste reacties, gebaseerd op jou code.quote:Op maandag 9 januari 2006 13:12 schreef JeRa het volgende:
[..]
Hier heb je geen JOIN voor nodig. Ik heb je tabel geprobeerd en ik merk op dat je het veld 'tijd' als een VARCHAR opslaat. Dit type werkt niet zo geweldig met de MAX()-functie. Beter sla je die tijd op als een Unix Timestamp (epoch), dit is het aantal seconden vanaf 1 januari 1970. Deze kun je in MySQL opvragen als UNIX_TIMESTAMP() en neemt als UNSIGNED INT maar 4 bytes in beslag, dit in tegenstelling tot jouw huidige veld dat een veelvoud van dat inneemt.
Als je een Unix timestamp als veld gebruikt kun je wél die MAX() gebruikendan ziet je query er zo uit:
[ code verwijderd ]
| 1 2 3 4 5 6 7 8 9 10 | if (mysql_num_rows($db->resultaten) <= 0) { ?> <h2>Geen resultaten</h2> <p> Er zijn geen resultaten gevonden in de database </p> <?php } else { while ($nieuws = $db->fetch()) { //loop hier } |
| 1 2 3 | //echo het resultaat echo substr(implode(' ', $bericht), 0, 50); |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | $query = "SELECT * FROM nieuws WHERE n_status = 'visible' ORDER BY n_id DESC"; $result = mysql_query($query); if (mysql_num_rows($db->resultaten) <= 0) { <h2>Geen resultaten</h2> <p> Er zijn geen resultaten gevonden in de database </p> php } else { while ($nieuws = mysql_fetch_object($result)){ // loop hier } ?> |
Ja, wel dusquote:Op dinsdag 10 januari 2006 14:12 schreef Desdinova het volgende:
je wijst geen nieuwe data toe aan $db in de while loop?
| 1 2 3 4 5 6 7 8 | $query = "SELECT * FROM a WHERE b = 'c'"; $result = mysql_query($query); while ($row = mysql_query($result)){ //loop } ?> |
Zoek een gastenboek op welke met Mysql werkt,quote:Op woensdag 11 januari 2006 13:28 schreef 9christensen het volgende:
Ik zoek een makkelijk phpscript waarmee ik een gastenboek kan maken. In dit gastenboek wil ik dat je berichten kunt quoten. Ik heb al op veel scriptsites gezocht, maar ben nog niet iets tegen gekomen.
mja, zo slim ben ik nog niet met php.quote:Op woensdag 11 januari 2006 13:40 schreef the_disheaver het volgende:
[..]
Zoek een gastenboek op welke met Mysql werkt,
voeg er onder elke berichtje een quote-knopje toe waarin je de bericht ID naar het formulier doorspeelt
Zoek vervolgens het bericht op in de database aan de hand van dat IDnummer, zet er quote-tags omheen en voeg een preg_expr toe welke van [quote] > <blockquote> maakt oid.
Misschien kun je naar smartisoft phpBook kijken, deze heb ik vroeger ooit eens gebruikt.quote:Op woensdag 11 januari 2006 14:08 schreef 9christensen het volgende:
[..]
mja, zo slim ben ik nog niet met php.
ik zoek eigenlijk naar een scriptje dat alles al doet.
| 1 2 3 4 5 6 7 8 9 10 11 12 | Sorry! PEAR_Frontend_Web is not yet compatible with PEAR 1.4.x. A new version will be available soon. Until then, you may install the CLI version of PEAR, or grab the CVS version of PEAR_Frontend_Web via anonymous CVS (WARNING: experienced developers only) |
| 1 |
offe:quote:Op woensdag 11 januari 2006 19:58 schreef Nevermind het volgende:
Iets dergelijks? Niet getest.
[ code verwijderd ]
| 1 2 | $nieuw_bestandnaam = $array[1]."_".$array[2]."_".$array[3]; |
Dan zou ik wel iets als dit doen, iets flexibeler;quote:Op woensdag 11 januari 2006 20:10 schreef the_disheaver het volgende:
[..]
offe:
[ code verwijderd ]
Moet wel werken, maar niet getest. De vorige lijkt me netter.
| 1 2 3 | unset( $array[0] ); $titel = implode( "_", $array ); |
| 1 2 3 | 123!!</description> |
| 1 |
Die line xxx is overigens de eerste lijn in de xml-file waar zo'n <-teken staat.quote:XML error: not well-formed at line xxx
ok klaar. heb het gefixt en het loopt.quote:Op woensdag 11 januari 2006 15:05 schreef Fatality het volgende:
hoe installeer ik die verpauperde PEAR-packages, via de CLI lukt het niet.
gebruik trouwens voor het gemak PHPdev met php 4.3 erbij, bij wie is het hiermee wel gelukt? Bij het openen van mijn php-cli.exe en php.exe krijg ik een 'php4ts.dll niet gevonden' fout
Man ik ben 90% van de tijd kwijt met dingen instellen en aanpassen van de localhostinstellingen.
[ code verwijderd ]
Wat moet ik hiermee, zoals ik dus al zei ben ik er al een tijdje mee bezig geweest.. maar ben ik helemaal niet van dat instellinggepriegel en meer van het scriptwerk zelf.
Wie helpt me uit de brand of heeft wat tips?
| 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 | <head> <title>Linebreak to tilde convertor</title> <script type="text/javascript"> function getPath() { document.myForm.path.value = document.myForm.file.value; } </script> <?php if(isset($_POST['submit'])){ $path=stripslashes($_POST['path']); $document=file("{$_FILES['file']['tmp_name']}"); foreach($document as $lines){ $lines=str_replace("\n",'~',$lines); } $document=implode("~",$document); $document=str_replace("\r\n",'',$document); $document=htmlentities($document); //referer schrijven naar bestand $fp=fopen("$path",'w+'); fwrite($fp,"$document"); fclose($fp); } ?> </head> <body> <? if(!empty($document)){ echo "$document"; }else{ ?> LET OP: De te converteren files moeten op de desktop staan ivm rechten <form name="myForm" onsubmit="getPath()" enctype="multipart/form-data" action="convertor.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="1000000" /></p> <input type="hidden" name="path" value=""> <p>Textfile: <input name="file" type="file" /></p> <input type="submit" name="submit" value="convert" /> <?}?> </form> </body> </html> |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $output = ''; foreach($document as $line_number => $line){ if(in_array($line_number + 1, $unicode_lines)) { $output .= unicode_functie(trim($line)).'~'; } else { $output .= htmlentities(trim($line)).'~'; } } $f = fopen($path,'w'); fwrite($f, $output); fclose($f); |
De vraag was meer hoe ik die unicode_functie schrijfquote:Op donderdag 12 januari 2006 17:06 schreef Ro�a� het volgende:
Je voegt een textveld toe aan je form waarin je in 1,2,3,4-format de regels aangeeft, vervolgens vervang je je php stuk:
[ code verwijderd ]
Zoiets ongeveer?
Ik zie er inderdaad wel het een en ander tussen staan.quote:Op donderdag 12 januari 2006 17:22 schreef Ro�a� het volgende:
Moet je even bij http://nl2.php.net/ord, staat in de comments redelijk wat over uniord.
| 1 2 3 4 5 6 7 8 9 10 11 | { $remove = array("select ", "insert ", "update ", "delete ", "drop ", "'", "union ", "--"); foreach ($remove as $key) { $in = str_replace($key, "", $in); } return addslashes($in); } |
| 1 2 3 4 | $string = trim($_GET['userString']; $result = mysql_query('SELECT FROM `tabel` WHERE `getal` = ' . $getal . ' AND `string` = \'' . mysql_real_escape_string($string) . '\''); |
Dat is de character set van een database, tabel of kolom in latere versies van MySQL (vanaf 4 geloof ik, en die is stable). Zie ook deze pagina voor een betere uitlegquote:Op donderdag 12 januari 2006 19:41 schreef Chandler het volgende:
collation? kun je dat nog even uitleggen?
Hier staat wel het een en ander, maar gaat veel te ver voor wat ik nodig heb, en is ook niet simpel te verbouwen tot wat ik nodig heb.quote:Op donderdag 12 januari 2006 17:22 schreef Ro�a� het volgende:
Moet je even bij http://nl2.php.net/ord, staat in de comments redelijk wat over uniord.
| 1 2 3 | $entities = get_html_translation_table(HTML_ENTITIES,ENT_NOQUOTES); foreach ($entities as $entity){ |
| 1 2 3 4 5 6 7 8 9 | $entities = get_html_translation_table(HTML_ENTITIES,ENT_NOQUOTES); foreach ($entities as $entity){ $pos=strpos($str,$entity); $char='\u00'.dechex(ord(substr($str,$pos+1,1))); $str=str_replace($entity,$char,$str); } echo $str; |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $str='hülp ü'; $entities = get_html_translation_table(HTML_ENTITIES,ENT_NOQUOTES); foreach ($entities as $entity => $value){ $pos=strpos($str,$entity); if($pos!==false){ $char='\u00'.dechex(ord(substr($str,$pos,1))); $str=str_replace($entity,$char,$str); } } echo $str; ?> |
normaal gesproken wel, hoe ziet je table eruit en hoe ziet je query er exact uit? Het is nooit zonder reden dat iets niet gaat zoals je het verwacht.quote:Op zaterdag 14 januari 2006 01:49 schreef the_disheaver het volgende:
In mysql.
Wanneer je ergens sorteert met ASC
Dan zou een waarde 0 toch boven de waarde 1 moeten staan?
Nu staat het als volgt:
1
1
0
0
10
10
Lijkt me niet de juiste volgorde (btw: er staat 0, geen NULL)
Dat laatste zal wel het geval zijn. Het is een forum waar ik ff wat wou toevoegen, maar met een vreemd resultaat.quote:Op zaterdag 14 januari 2006 07:39 schreef rickmans het volgende:
[..]
normaal gesproken wel, hoe ziet je table eruit en hoe ziet je query er exact uit? Het is nooit zonder reden dat iets niet gaat zoals je het verwacht.
| 1 2 3 4 5 6 7 | thread.title, lastpost, forumid, pollid, open , replycount, postusername, postuserid, lastposter, thread.dateline, views, thread.iconid, notes, thread.visible, sticky, votetotal, attach FROM thread LEFT JOIN icon ON ( icon.iconid = thread.iconid ) ORDER BY sticky DESC , open DESC |
Dank, dat geeft een logische volgorde aan.quote:Op zaterdag 14 januari 2006 11:28 schreef SuperRembo het volgende:
Zet dan backticks om `open` heen.
| 1 2 3 4 5 6 7 8 | sticky DESC, CASE `open` WHEN 1 THEN 1 WHEN 0 THEN 2 WHEN 10 THEN 3 ELSE 4 END ASC |
Die eerste post klopte idd niet echt. waarschijnlijk de volgorde waar hij weer gegeven werd, en hoe ik wou dat het weer gegeven werd door elkaar gehaald. Maar het was zeker wel een niet logische volgorde.quote:Op zaterdag 14 januari 2006 12:10 schreef SuperRembo het volgende:
@the_disheaver:
Ik dacht dat je probleem was dat de sorteervolgorde 1, 0, 10 werd. Maar het probleem is dus dat je wil dat de sorteervolgorde 1, 0, 10 wordt, maar dat je niet weet hoe je dat moet doen.
Tof, in phpmyadmin doet hij het goed. Nu nog in het php-bestand veranderen. Dank!quote:
| 1 2 3 4 5 | foreach ( $_POST as $key => $value ) { $_POST [ $key ] = stripslashes ( $value ); }; }; |
Daar heb ik helemaal geen verstand vanquote:Op zondag 15 januari 2006 16:45 schreef JeRa het volgende:
Is het niet mogelijk om met VirtualHosts te werken? Dan kun je een ServerAlias opgeven en werkt het exact hetzelfde voor zowel domein www.a.nl als voor www.b.nl
| 1 2 | RewriteRule ^(.*)$ /index.php?verzoek=$1 |
iidd een regular expression ding ertegen aan knallen, ctype_alpha() is idd nog beterquote:Op zaterdag 14 januari 2006 20:05 schreef wobbel het volgende:
met is_numeric() kan je kijken of een string numeriek is.
Maar is er ook een variant om te kijken of er alleen letters inzitten?
| 1 |
Dat is optellen wat niet hetzelfde is als string concatten is.quote:Op maandag 16 januari 2006 20:01 schreef Fatality het volgende:
Huh, vroegâh gebruikte ik daar gewoon + voor
gokje, uitkomst 8 en uitkomst 53?quote:Op maandag 16 januari 2006 20:05 schreef JeRa het volgende:
[..]
Dat is optellen wat niet hetzelfde is als string concatten is.
Doe dit maar eens in PHP:
echo '5' + '3';
En dit:
echo '5' . '3';
En je merkt het verschil(mede mogelijk gemaakt door loose typing)
Het was een vraagstuk voor Fatality jaquote:Op maandag 16 januari 2006 20:22 schreef Swetsenegger het volgende:
[..]
gokje, uitkomst 8 en uitkomst 53?
Ja die is het aan het inkloppenquote:Op maandag 16 januari 2006 20:33 schreef JeRa het volgende:
[..]
Het was een vraagstuk voor Fatality ja![]()
Ik deed het helemaal uit het blote bolletjequote:voor gevorderde PHP'ers behoort dit basiskennis te zijn enzo
Nee kijk, de beredenering erachter was dat Fatality die twee echo's zou overnemen en zou zeggen:quote:Op maandag 16 januari 2006 20:43 schreef Swetsenegger het volgende:
[..]
Ja die is het aan het inkloppen
[..]
Ik deed het helemaal uit het blote bolletje.
quote:Op maandag 16 januari 2006 20:59 schreef JeRa het volgende:
[..]
Nee kijk, de beredenering erachter was dat Fatality die twee echo's zou overnemen en zou zeggen:
"Omfg lollercopter, nu snap ik die hendig sjieke kankerkachels! Wellicht zou ik dit zo ook kunnen testen bij ándere operators die ik nog niet ken!"
En zodoende was al het gepostopkrik mijner zijde niet nodig geweest
Mooi he dat je kan bijdrage aan de educatie van minder bedeelde php'ersquote:Op maandag 16 januari 2006 20:59 schreef JeRa het volgende:
[..]
Nee kijk, de beredenering erachter was dat Fatality die twee echo's zou overnemen en zou zeggen:
"Omfg lollercopter, nu snap ik die hendig sjieke kankerkachels! Wellicht zou ik dit zo ook kunnen testen bij ándere operators die ik nog niet ken!"
En zodoende was al het gepostopkrik mijner zijde niet nodig geweest
Ik barst 's nachts wel eens in huilen uit, puur vanwege de prachtquote:Op maandag 16 januari 2006 21:31 schreef Swetsenegger het volgende:
[..]
Mooi he dat je kan bijdrage aan de educatie van minder bedeelde php'ers.
Niemand die hier nog geniale gedachtes over heeft? Ik zit er zelf ook een beetje vast mee. Geen idee waarop ik moet zoeken ook.quote:Op woensdag 11 januari 2006 23:26 schreef keeper het volgende:
Ik probeer een XML bestand te parsen, wat opzich goed gaat, maar ik val over een paar dingen.
Ik moet oa informatie hebben die tussen <description>-tags staat. Dit lukt, maar als er tussen de start en eindtag witregels worden gebruikt, pakt de parser het maar tot de witregel.
Dus
[ code verwijderd ]
Levert als output alleen 'BlaBla'. Een nl2br(); lost hierbij niks op,
Daarnaast is er ook een probleem als er een < of >-teken wordt gebruikt (bijvoorbeeld als er een link is opgenomen in de description, of een <b>-tag). De parser stopt dan ook op dit punt. De tags staan er trouwens niet hard in, maar in hun html-entity-waarde, dus &l_t en >. Dit geldt ook voor tekens als apostrof (') enzo, maar die kan ik er uitvissen met een ereg_replace:
[ code verwijderd ]
Doe ik dit echter bij de < en >-tekens, krijg ik deze error:
[..]
Die line xxx is overigens de eerste lijn in de xml-file waar zo'n <-teken staat.
Als laatste puntje heb ik een probleem om de inhoud van een tag met een namespace-verwijzing daarin te pakken te krijgen. In dit geval de tag <lj:mood>. Ik begreep uit documentatie dat die namespace slechts ter identificatie dient en je gewoon op de tag zonder de namespace kan zoeken. Dus in dit geval <mood>. Helaas blijft mijn variabele waarin de inhoud van de tag zou moeten staan dan leeg.
Iemand suggesties? Ik blijf zelf ook dingen proberen natuurlijk, als ik antwoorden heb post ik ze hier.
In de voorbeelden hier heb ik die html-entities wat aangepast, want anders worden ze als teken neergezet door Replikk. In mijn echte code staan ze goed, dus zonder underscore en met punt-komma.
De code van mijn parser.
| 1 2 3 | <br /> blablabla etc... |
Dan krijg ik dus een XML Wellformedness errorquote:Op maandag 16 januari 2006 23:53 schreef markiemark het volgende:
over die < en die > is een functie, htmlentities() voor.
| 1 |
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |