String in stukken breken?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis Smink

Dennis Smink

01/02/2013 10:58:27
Quote Anchor link
Geachte allen,

Ik ben er nu al een poosje mee bezig maar ik kan er niet meer uitkomen, ik heb diverse soluties geprobeerd waaronder split() en explode, het lukt me niet.

Ik heb een conf.txt bestand die ik in PHP uitlees, daar gaat het verder niet om.

Het txt bestand bevat de volgende data( Ook precies zo geschreven in het bestand ):

nameServer=test
portServer=test
dataServer=test
mainServer=test

Ik moet deze regels dus in een array() zien te krijgen, maar het lukt me maar niet.

De output die ik dus nodig heb is:

0 => nameServer => 0 =>test
1 => portServer => 0 =>test
2 => dataServer => 0 =>test
3 => mainServer => 0 =>test

Ik hoop dat jullie mijn vraag begrijpen, want ik kom er niet meer uit..

Bedankt alvast!
 
PHP hulp

PHP hulp

21/11/2024 12:33:37
 
- Mark -

- Mark -

01/02/2013 11:14:36
Quote Anchor link
Zoiets? $conf_array is de array die je uit je txt bestand hebt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

        $data
= array();

        foreach($conf_array as $string){

            list($key, $value) = explode('=', $string);

            $data[$key] = $value;

        }


?>
 
Dennis Smink

Dennis Smink

01/02/2013 11:18:31
Quote Anchor link
- Mark - op 01/02/2013 11:14:36:
Zoiets? $conf_array is de array die je uit je txt bestand hebt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

        $data
= array();

        foreach($conf_array as $string){

            list($key, $value) = explode('=', $string);

            $data[$key] = $value;

        }


?>


Helaas is het probleem, dat het txt bestand geen array output..
 
- Mark -

- Mark -

01/02/2013 11:19:48
Quote Anchor link
Hoe lees je die dan uit?
 
Dennis Smink

Dennis Smink

01/02/2013 11:20:56
Quote Anchor link
- Mark - op 01/02/2013 11:19:48:
Hoe lees je die dan uit?


Oh, excusses. Ik heb de oplossing gevonden.

Wat ik gedaan heb is de newlines gebroken door:

$explode = explode("\n", $txt);

Dit returnde een array en jouw functie hieroverheen was de oplossing! Dankje!
 
Erwin H

Erwin H

01/02/2013 11:21:35
Quote Anchor link
Je zegt dat het inlezen in php geen probleem is. Dat lukt je vast, maar toch wil je vragen hoe je dat doet. Als je namelijk alles in 1 keer inleest dan wordt het lastig. Echter, je kan het ook regel voor regel inlezen en regel voor regel de data opbreken in de twee stukken.

Edit: inmiddels dus achterhaald door de werkelijkheid, desalniettemin kan het je nog helpen. Zeker als het een groot bestand is, kan het regel voor regel inlezen namelijk sneller/efficienter zijn. Tevens als \n een keer \r\n wordt, kan je ook rare dingen krijgen met het exploden daarop.
Gewijzigd op 01/02/2013 11:23:07 door Erwin H
 
Dennis Smink

Dennis Smink

01/02/2013 11:25:28
Quote Anchor link
Het is in principe wat anders als ik beschreef, ik maakte mijn vraag wat simpeler dan het werkelijk was.

Ik verkrijg een .properties bestand via FTP in PHP binnen, deze returned net zoals een TXT bestand gewoon data met newlines.

Is er een handige manier om de nodigheid te detecteren van waneer er \r\n nodig is?
 
Erwin H

Erwin H

01/02/2013 11:32:44
Quote Anchor link
In dat geval wordt het inlezen regel voor regel wat lastiger inderdaad...

Wat je kan doen is via strstr checken of \r\n of \n\r bestaat in de string. Zo ja, dan daarop splitten, anders op \n.
 
Rick van Riel

Rick van Riel

01/02/2013 12:21:15
Quote Anchor link
Dennis kun je zelf bepalen hoe het bestand dat je terug krijgt eruit ziet en welk type dit is?
Als dit zo is zou je er namelijk een .ini file van kunnen maken.
PHP heeft standaard een functie op een .ini file om te zetten naar een array
http://php.net/manual/en/function.parse-ini-file.php

Hoop dat je er iets aan hebt.
 
Dennis Smink

Dennis Smink

01/02/2013 15:46:41
Quote Anchor link
Rick van Riel op 01/02/2013 12:21:15:
Dennis kun je zelf bepalen hoe het bestand dat je terug krijgt eruit ziet en welk type dit is?
Als dit zo is zou je er namelijk een .ini file van kunnen maken.
PHP heeft standaard een functie op een .ini file om te zetten naar een array
http://php.net/manual/en/function.parse-ini-file.php

Hoop dat je er iets aan hebt.


Dat zou helemaal mooi zijn als dat kon, helaas is het een properties file van minecraft. ( server.properties )

Ondertussen gebruik ik de functie zoals voorheen beschreven ( bedankt nog ), en dit werkt prima eigenlijk.

Omdat ik zelf het server.properties bestand schrijf als deze gewijzigd word weet ik trouwens zowiezo zeker dat er geen \r\n's in komen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.