<?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:


"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:


"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:


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??????

<?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
Dat komt omdat je 1) je filters weggehaald hebt, en 2) niet de stream zoals hij eruit kwam gegeven hebt.

<?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...
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.

...

Werkt bij mij...


Oke thanks. Alleen komt er nu een string(10) uit:

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
Ghehe, nee, dat is de manier waarop [php]var_dump[/php] je array print. Vervang die functie-aanroep maar eens met een aanroep naar [php]print_r[/php], die je zelf hebt gebruikt, en tada!
Jelmer rrrr op 29/08/2010 18:58:11

Ghehe, nee, dat is de manier waarop [php]var_dump[/php] je array print. Vervang die functie-aanroep maar eens met een aanroep naar [php]print_r[/php], die je zelf hebt gebruikt, en tada!


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

Reageren