League of Legends [Last Updated 22-08-2012]: [EUW] Jeffro (Now:Silver, S1:Bronze), RankedSolo5x5: 1502 [120W/106L], Dominion: 84W, TT: 3W, Normal: 504W
How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.
Wat je bijvoorbeeld zou kunnen doen is het volgende:
Lees het bestand in: http://php.net/manual/en/function.file-get-contents.php
Splits het bestand per lijn \n en daarna de lijnen weer op | http://php.net/manual/en/function.explode.php
Schrijf het bestand weg als XML: http://www.php.net/manual/en/book.xmlwriter.php
Wat je ook zou kunnen doen is het bestand als CSV interpreteren, maar als delimiter de | gebruiken ipv de standaard , http://php.net/manual/en/function.fgetcsv.php
Daarna zou je de inhoud als XML kunnen wegschrijven zoals hierboven vermeld.
If money talks then I'm a mime
If time is money then I'm out of time
1
2
3
4
5
6
7
8
9
10
11
12
13
| $invoer = $_POST['invoer']; $regels = explode("\n", $invoer); for($i = 0, $size = sizeof($regels); $i < $size; ++$i) { $regel2 = explode("|", $regels[$i]); echo " <item> <question>$regel2[1]</question> <answer>$regel2[0]</answer> </item> "; } |
Na wat testen lukt dit blijkbaar toch, met probleem echter dat ik de tags niet zie. Iemand daar de oplossing voor?
League of Legends [Last Updated 22-08-2012]: [EUW] Jeffro (Now:Silver, S1:Bronze), RankedSolo5x5: 1502 [120W/106L], Dominion: 84W, TT: 3W, Normal: 504W
1
| > |
1
| < |
Als het goed is moet het dan werken.
[ Voor 13% gewijzigd door The_Ghost16 op 14-02-2011 16:22 ]
Verwijderd
Maar dan precies andersom.The_Ghost16 schreef op maandag 14 februari 2011 @ 16:21:
Verander < voorcode:en verander > voor
1 >code:
1 <
Als het goed is moet het dan werken.
Dankjewel ^^
Kan ik eindelijk m'n Teamspeak Quiz Bot inzetten xD
League of Legends [Last Updated 22-08-2012]: [EUW] Jeffro (Now:Silver, S1:Bronze), RankedSolo5x5: 1502 [120W/106L], Dominion: 84W, TT: 3W, Normal: 504W
Oh lol
League of Legends [Last Updated 22-08-2012]: [EUW] Jeffro (Now:Silver, S1:Bronze), RankedSolo5x5: 1502 [120W/106L], Dominion: 84W, TT: 3W, Normal: 504W
Dat komt omdat de browser die tags verwerkt als XML. In de broncode kan je ze wel zien (iets van CTRL+U) meestal.Jeffroiscool schreef op maandag 14 februari 2011 @ 16:17:
Ikzelf zat te denken om het zo te doen:
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 $invoer = $_POST['invoer']; $regels = explode("\n", $invoer); for($i = 0, $size = sizeof($regels); $i < $size; ++$i) { $regel2 = explode("|", $regels[$i]); echo " <item> <question>$regel2[1]</question> <answer>$regel2[0]</answer> </item> "; }
Na wat testen lukt dit blijkbaar toch, met probleem echter dat ik de tags niet zie. Iemand daar de oplossing voor?
* Klopt de aanname dat er in de antwoordtekst geen | voorkomt? Wellicht splitst het programma waar je data vandaan komt alleen op de eerste |.
* Klopt de aanname dat er geen tekens met bijzondere betekenis in XML voorkomen in de originele tekst?
Met strings klooien is doorgaans niet de beste manier om XML te maken. In PHP heb je hele handige libraries (DOM, simpleXML) die je helpen om te voorkomen dat je tagsoup produceert. Maar goed, dat is iets voor een andere keer, voor zo'n simpele omzetting is het een beetje overkill.
Regeren is vooruitschuiven
En dus ook geen
1
| > of < |
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
| $invoer = $str; $regels = explode("\n", $invoer); //XML Writer $oXMLout = new XMLWriter(); $oXMLout->openMemory(); $oXMLout->startDocument('1.0'); $oXMLout->setIndent(4); $oXMLout->startElement("quiz"); $oXMLout->writeAttribute("name", "Nederlands"); $oXMLout->writeAttribute("source", "http://www.fakegaming.eu/"); for($i = 0, $size = sizeof($regels); $i < $size; ++$i) { $regel2 = explode("¶", $regels[$i]); $oXMLout->startElement("item"); $oXMLout->writeElement("question", $regel2[0]); $oXMLout->writeElement("answer", $regel2[1]); $oXMLout->endElement(); } $oXMLout->endElement(); $oXMLout->endDocument(); $xml = $oXMLout->outputMemory(); $oXMLout->flush(); $myFile = "convert.quizml"; $fh = fopen($myFile, 'w') or die("can't open file"); fwrite($fh, $xml); fclose($fh); |
League of Legends [Last Updated 22-08-2012]: [EUW] Jeffro (Now:Silver, S1:Bronze), RankedSolo5x5: 1502 [120W/106L], Dominion: 84W, TT: 3W, Normal: 504W
Huh? Dat heb ik nog nooit eerder gezien....Jeffroiscool schreef op donderdag 17 februari 2011 @ 11:52:
PHP:
1 $regel2 = explode("¶", $regels[$i]);
En toch bestaat dieL0calh0st schreef op donderdag 17 februari 2011 @ 14:47:
[...]
Huh? Dat heb ik nog nooit eerder gezien....
Ik ben later een andere lijst gaan gebruiken, bijna zelfde formaat maar in plaats van | deden ze dat. Ik vind het best, het werkt ^^ (Teamspeakquizbot FTW)
League of Legends [Last Updated 22-08-2012]: [EUW] Jeffro (Now:Silver, S1:Bronze), RankedSolo5x5: 1502 [120W/106L], Dominion: 84W, TT: 3W, Normal: 504W
- gebruik engels OF nederlands, niet door elkaar (bij voorkeur zou ik sowieso engels doen)
- gebruik file_put_contents() voor t opslaan van je file, veel korter en doet t zelfde
- wees consistent met prefixen of doe t niet ($oXMLout, $xml), ik zou sowieso niet prefixen..
- $invoer = $str; dat heeft geen zin, gebruik dan gewoon $str meteen
Ik had de hele trivia lijst in $str staanCartman! schreef op donderdag 17 februari 2011 @ 21:51:
Paar tips:
- gebruik engels OF nederlands, niet door elkaar (bij voorkeur zou ik sowieso engels doen)
- gebruik file_put_contents() voor t opslaan van je file, veel korter en doet t zelfde
- wees consistent met prefixen of doe t niet ($oXMLout, $xml), ik zou sowieso niet prefixen..
- $invoer = $str; dat heeft geen zin, gebruik dan gewoon $str meteen
file_put_contents() is een nieuwe voor me, ga ik proberen.
Het prefixen snap ik ff niet
Als je nog weer wilt opmerken wil ik ook wel m'n CMS WiP linken hoor
League of Legends [Last Updated 22-08-2012]: [EUW] Jeffro (Now:Silver, S1:Bronze), RankedSolo5x5: 1502 [120W/106L], Dominion: 84W, TT: 3W, Normal: 504W
Waarom maak je dan een nieuwe variabele aan:Jeffroiscool schreef op donderdag 17 februari 2011 @ 23:28:
[...]
Ik had de hele trivia lijst in $str staan
1
2
3
4
| $invoer = $str; $regels = explode("\n", $invoer); // ipv $lines = explode("\n", $str); |
Ik gok dat je oXMLoutput geript hebt van een ander dan, die 'o' staat vermoedelijk voor 'object' om aan te geven wat voor type variabele het is. Dat heet prefixen (dus bijv. sName/strName als string, aLines/arrLines als array). Ik zou t je niet aanradenHet prefixen snap ik ff niet
Nee dankjeAls je nog weer wilt opmerken wil ik ook wel m'n CMS WiP linken hoor
Het was gewoon even quick'n'dirty om het zo in te voeren, stukje luiheid aangezien het script publiekelijk waarschijnlijk toch niet gebruikt word.Cartman! schreef op vrijdag 18 februari 2011 @ 00:01:
[...]
Waarom maak je dan een nieuwe variabele aan:
PHP:
1 2 3 4 $invoer = $str; $regels = explode("\n", $invoer); // ipv $lines = explode("\n", $str);
[...]
Ik gok dat je oXMLoutput geript hebt van een ander dan, die 'o' staat vermoedelijk voor 'object' om aan te geven wat voor type variabele het is. Dat heet prefixen (dus bijv. sName/strName als string, aLines/arrLines als array). Ik zou t je niet aanraden
[...]
Nee dankje
Stukje voor XML heb ik alleen
$oXMLout->openMemory();
$oXMLout->startDocument('1.0');
$oXMLout->setIndent(4);
Geript van de help forums, dan ga ik uiteraard verder met dezelfde variable
Ik zal zeker wel wat doen met deze tips, ik wil zoiezo beter en efficienter worden met PHP
Hartstikke bedankt!
League of Legends [Last Updated 22-08-2012]: [EUW] Jeffro (Now:Silver, S1:Bronze), RankedSolo5x5: 1502 [120W/106L], Dominion: 84W, TT: 3W, Normal: 504W