Get String, Edit String, String to array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marc Hagen

Marc Hagen

24/08/2010 19:50:26
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP 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
<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');

if ($fp = fopen("http://***.***.***.***/***.***.***.***_*****/ULib/users.txt","r")) {
    $content = '';
    // keep reading until there's nothing left
    while ($line = fgets($fp, 1024)) {
        $content .= $line;
    }

    echo $content;

    //Array of special charecters you want to replace
    $special1 = array('{','}','STEAM','-','_',':','0','1','2','3','4','5','6','7','8','9','ï','»','¿','""','"allow"','"deny"');
    $special2 = array(' ');
    $special3 = array('"name"');    
    $special4 = array('"group"','"superadmin"','"admin"');
    
    $replacement1 = str_replace($special1,'',$content);
    $replacement2 = str_replace($special2,'_',$replacement1);
}


?>


He all,
Ik heb een probleem maar kan hem niet oplossen.
Ik zal mijn script even uitleggen.

Eerst open ik een remote bestand en lees het dan.
vervolgens word het als een string opgeslagen in de var $content
De string ziet er zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"STEAM_*:*:********" { "deny" { } "group" "superadmin" "allow" { } "name" "USeRName1" } "STEAM_*:*:********" { "deny" { } "group" "superadmin" "allow" { } "name" "USeRName2" } "STEAM_*:*:********" { "deny" { } "group" "superadmin" "allow" { } "name" "USeRName3" } "STEAM_*:*:********" { "deny" { } "group" "superadmin" "allow" { } "name" "USeRName4" } "STEAM_*:*:********" { "deny" { } "group" "superadmin" "allow" { } "name" "USeRName5" }


Deze strip ik helemaal met str_replace tot dat ik alleen dit heb:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
"group" "superadmin"
"name" "USeRName1"

"group" "superadmin"
"name" "USeRName2"

"group" "superadmin"
"name" "USeRName3"

"group" "superadmin"
"name" "USeRName4"

"group" "superadmin"
"name" "USeRName5"


Nu mijn vraag: Hoe can ik dit in een array zetten?
Zo eigenlijk:

Code (php)
PHP script in nieuw venster Selecteer het PHP 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
Array
(
    [0] => Array
        (
            [group] => superadmin
            [name] => USeRName1
        )
    [1] => Array
        (
            [group] => superadmin
            [name] => USeRName2
    )
    [2] => Array
        (
            [group] => superadmin
            [name] => USeRName3
        )
    [3] => Array
        (
            [group] => superadmin
            [name] => USeRName4
        )
    [4] => Array
        (
            [group] => superadmin
            [name] => USeRName5
        )
    [5] => Array
        (
            [group] => superadmin
            [name] => USeRName6
        )
)


De bedoeling is ook dat als op het remote bestand word gewijzigd, zoals meer of minder admins, dat dit ook word doorgevoerd.
Kan iemand me hier mee helpen?

Toevoeging op 25/08/2010 09:25:13:

Kan niemand mij helpen??????
Gewijzigd op 25/08/2010 09:40:50 door Marc Hagen
 
PHP hulp

PHP hulp

26/09/2022 02:46:55
 
Marc Hagen

Marc Hagen

29/08/2010 17:02:48
Quote Anchor link
Wel bedankt phphulp voor uw wijze hulp!!

edit:
sarcastisch bedoeld!
Gewijzigd op 29/08/2010 17:14:56 door Marc Hagen
 
Synaps Framework

Synaps Framework

29/08/2010 17:05:52
Quote Anchor link
Graag gedaan.
 
Marc Hagen

Marc Hagen

29/08/2010 17:14:01
Quote Anchor link
Synaps Framework op 29/08/2010 17:05:52:
Graag gedaan.


ha ha niet grappig.. >:(
Gewijzigd op 29/08/2010 17:15:15 door Marc Hagen
 
Vincent Huisman

Vincent Huisman

29/08/2010 17:19:44
Quote Anchor link
ik dacht al dat dit via PM ofzo was opgelost
 
Marc Hagen

Marc Hagen

29/08/2010 17:31:19
Quote Anchor link
Vincent Huisman op 29/08/2010 17:19:44:
ik dacht al dat dit via PM ofzo was opgelost


Uh nee anders zou ik dat wel zeggen.
Zo ben ik dan weer
 
Vincent Huisman

Vincent Huisman

29/08/2010 17:33:47
Quote Anchor link
en waarom die je dit niet via een database?
 
Marc Hagen

Marc Hagen

29/08/2010 17:39:40
Quote Anchor link
Vincent Huisman op 29/08/2010 17:33:47:
en waarom die je dit niet via een database?


Omdat het van de gameserver word afgehaalt.
Deze moet ik anders steeds in een database zetten.
(Nee de gameserver gebruikt GEEN database)
 
SilverWolf NL

SilverWolf NL

29/08/2010 17:55:49
Quote Anchor link
Nou jonge, omdat je het zo lief vraagt en zo beleeft bumpt, hier issie dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?PHP
$var
='"group" "superadmin"
"name" "USeRName1"

"group" "superadmin"
"name" "USeRName2"

"group" "superadmin"
"name" "USeRName3"

"group" "superadmin"
"name" "USeRName4"

"group" "superadmin"
"name" "USeRName5"'
;
$var=preg_replace('/\"(.*?)\"\s\"(.*?)\"'.PHP_EOL.'\"(.*?)\"\s\"(.*?)\"/si','{"\\1":"\\2","\\3":"\\4"}',$var);
$var="[".str_replace("}".PHP_EOL.PHP_EOL."{","},".PHP_EOL.PHP_EOL."{",$var)."]";
$var=json_decode($var,true);
var_dump($var);
?>
 
Marc Hagen

Marc Hagen

29/08/2010 18:01:07
Quote Anchor link
SilverWolf NL op 29/08/2010 17:55:49:
Nou jonge, omdat je het zo lief vraagt en zo beleeft bumpt, hier issie dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?PHP
$var
='"group" "superadmin"
"name" "USeRName1"

"group" "superadmin"
"name" "USeRName2"

"group" "superadmin"
"name" "USeRName3"

"group" "superadmin"
"name" "USeRName4"

"group" "superadmin"
"name" "USeRName5"'
;
$var=preg_replace('/\"(.*?)\"\s\"(.*?)\"'.PHP_EOL.'\"(.*?)\"\s\"(.*?)\"/si','{"\\1":"\\2","\\3":"\\4"}',$var);
$var="[".str_replace("}".PHP_EOL.PHP_EOL."{","},".PHP_EOL.PHP_EOL."{",$var)."]";
$var=json_decode($var,true);
var_dump($var);
?>

Fijn dat iemand de moeite neemt. Bedankt. Maar xD

Zoals als ik al zei in mijn eerste post. ik haal het van een server.
Dus is het niet een var.

Ik zal mezelf nog effe quoten:
Marc Hagen op 24/08/2010 19:50:26:
Code (php)
PHP script in nieuw venster Selecteer het PHP 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
<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');

if ($fp = fopen("http://***.***.***.***/***.***.***.***_*****/ULib/users.txt","r")) {
    $content = '';
    // keep reading until there's nothing left
    while ($line = fgets($fp, 1024)) {
        $content .= $line;
    }

    echo $content;

    //Deze strip ik helemaal met str_replace tot dat ik alleen dit heb:
    $special1 = array('{','}','STEAM','-','_',':','0','1','2','3','4','5','6','7','8','9','ï','»','¿','""','"allow"','"deny"');
    $special2 = array(' ');
    $special3 = array('"name"');    
    $special4 = array('"group"','"superadmin"','"admin"');
    
    $replacement1 = str_replace($special1,'',$content);
    $replacement2 = str_replace($special2,'_',$replacement1);
}


?>


He all,
Ik heb een probleem maar kan hem niet oplossen.
Ik zal mijn script even uitleggen.

Eerst open ik een remote bestand en lees het dan.
vervolgens word het als een string opgeslagen in de var $content
De string ziet er zo uit:
=== hier is het bestand zoals ik het krijg:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"STEAM_*:*:********" { "deny" { } "group" "superadmin" "allow" { } "name" "USeRName1" } "STEAM_*:*:********" { "deny" { } "group" "superadmin" "allow" { } "name" "USeRName2" } "STEAM_*:*:********" { "deny" { } "group" "superadmin" "allow" { } "name" "USeRName3" } "STEAM_*:*:********" { "deny" { } "group" "superadmin" "allow" { } "name" "USeRName4" } "STEAM_*:*:********" { "deny" { } "group" "superadmin" "allow" { } "name" "USeRName5" }


Deze strip ik helemaal met str_replace tot dat ik alleen dit heb:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
"group" "superadmin"
"name" "USeRName1"

"group" "superadmin"
"name" "USeRName2"

"group" "superadmin"
"name" "USeRName3"

"group" "superadmin"
"name" "USeRName4"

"group" "superadmin"
"name" "USeRName5"


Nu mijn vraag: Hoe can ik dit in een array zetten?
Zo eigenlijk:

Code (php)
PHP script in nieuw venster Selecteer het PHP 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
Array
(
    [0] => Array
        (
            [group] => superadmin
            [name] => USeRName1
        )
    [1] => Array
        (
            [group] => superadmin
            [name] => USeRName2
    )
    [2] => Array
        (
            [group] => superadmin
            [name] => USeRName3
        )
    [3] => Array
        (
            [group] => superadmin
            [name] => USeRName4
        )
    [4] => Array
        (
            [group] => superadmin
            [name] => USeRName5
        )
    [5] => Array
        (
            [group] => superadmin
            [name] => USeRName6
        )
)


De bedoeling is ook dat als op het remote bestand word gewijzigd, zoals meer of minder admins, dat dit ook word doorgevoerd.
Kan iemand me hier mee helpen?

Toevoeging op 25/08/2010 09:25:13:

Kan niemand mij helpen??????


Toevoeging op 29/08/2010 18:04:09:

Ik heb dus al zitten klooien met:
explode(), str_split(), preg_split()
maar het probleem is dat ik het niet in een array krijg zoals hierboven staat vermeld
 
Vincent Huisman

Vincent Huisman

29/08/2010 18:05:31
Quote Anchor link
je kan die var toch verplaatsem met wat jij hebt?
 
Marc Hagen

Marc Hagen

29/08/2010 18:19:22
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if ($fp = fopen("http://91.192.210.170/91.192.210.170_27015/ULib/users.txt","r")) {
    $content = '';
    // keep reading until there's nothing left
    while ($line = fgets($fp, 1024)) {
        $content .= $line;
    }

    $content = preg_replace('/\"(.*?)\"\s\"(.*?)\"'.PHP_EOL.'\"(.*?)\"\s\"(.*?)\"/si','{"\\1":"\\2","\\3":"\\4"}',$content);
    $content = "[".str_replace("}".PHP_EOL.PHP_EOL."{","},".PHP_EOL.PHP_EOL."{",$content)."]";    
    var_dump(json_decode($content,true));
}

?>

Dit is wat ik heb..
output: NULL
Gewijzigd op 29/08/2010 18:20:10 door Marc Hagen
 
SilverWolf NL

SilverWolf NL

29/08/2010 18:25:19
Quote Anchor link
Dat komt omdat je 1) je filters weggehaald hebt, en 2) niet de stream zoals hij eruit kwam gegeven 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
14
15
16
17
18
19
20
21
22
23
24
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

if ($fp = fopen("http://91.192.210.170/91.192.210.170_27015/ULib/users.txt","r")) {
    $content = '';
    // keep reading until there's nothing left
    while ($line = fgets($fp, 1024)) {
        $content .= $line;
    }

    $special1 = array('{','}','STEAM','-','_',':','0','1','2','3','4','5','6','7','8','9','ï','»','¿','""','"allow"','"deny"');
    $special2 = array(' ');
    $special3 = array('"name"');    
    $special4 = array('"group"','"superadmin"','"admin"');
    
    $content = str_replace($special1,'',$content);
    $content = str_replace($special2,'_',$content);
    
    $content = preg_replace('/\"(.*?)\"\s\"(.*?)\"(.*?)\"(.*?)\"\s\"(.*?)\"/si','{"\\1":"\\2","\\4":"\\5"}',$content);
    $content = "[".preg_replace("/\}(.*?)\{/si","},{",$content)."]";
    $content = json_decode($content,true);
    var_dump($content);
}

?>


Werkt bij mij...
 
Marc Hagen

Marc Hagen

29/08/2010 18:53:42
Quote Anchor link
SilverWolf NL op 29/08/2010 18:25:19:
Dat komt omdat je
1) je filters weggehaald hebt
2) niet de stream zoals hij eruit kwam gegeven hebt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
...

Werkt bij mij...


Oke thanks. Alleen komt er nu een string(10) uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP 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
array(4) {
  [0]=>
  array(2) {
    ["group"]=>
    string(10) "superadmin"
    ["name"]=>
    string(8) "username"
  }
  [1]=>
  array(2) {
    ["group"]=>
    string(10) "superadmin"
    ["name">
    string(8) "username"
  }
  [2]=>
  array(2) {
    ["group"]=>
    string(10) "superadmin"
    ["name"]=>
    string(8) "username"
  }
  [3]=>
  array(2) {
    ["group"]=>
    string(10) "superadmin"
    ["name"]=>
    string(8) "username"
  }
}


Als je dat er ook wil uithalen ben ik helemaal blij!
Alvast bedankt allemaal
Gewijzigd op 29/08/2010 18:54:33 door Marc Hagen
 
Jelmer -

Jelmer -

29/08/2010 18:58:11
Quote Anchor link
Ghehe, nee, dat is de manier waarop var_dump je array print. Vervang die functie-aanroep maar eens met een aanroep naar print_r, die je zelf hebt gebruikt, en tada!
 
Marc Hagen

Marc Hagen

29/08/2010 19:06:28
Quote Anchor link
Jelmer rrrr op 29/08/2010 18:58:11:
Ghehe, nee, dat is de manier waarop var_dump je array print. Vervang die functie-aanroep maar eens met een aanroep naar print_r, die je zelf hebt gebruikt, en tada!


Oke He bedankt allemaal. Ik ben meer het basic php scripting.
Het is opgelost. Link coming soon
 



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.