Bestimmten teil eines Quellcodes in Variable speichern

MelcomB56

Mitglied
Hallo Liebe Community,

ich versuche gerade für unsere Gilde ein kleines Rooster zu schreiben.

Naja, ich zerbreche mir nun schon seit 2 tagen den Kopf darüber und sehe glaub ich den Wald vor lauter bäumen nicht mehr.

Ich muss von einem Quellcode der zur verfügung gestellt wird eine bestimmte passage zum weiterverarbeiten haben

Hier der Quellcode:
Code:
dispQuery="Haudraufuss";			
result_start="0";
result_total="1";

result_arr =[ 
	{
			url:"http://de.aiononline.com/livestatus/character-legion/search?charID=400926&serverID=37",
			collid:"aionuser",
			docid:"37A400926",
			gender_id:"0",
			race_id:"0",
			race_name:"Elyos",
			char_id:"400926",
			char_name:"<strong>Haudraufuss</strong>",
			level:43,
			server_id:"37",
			server_name:"Thor",
			class_name:"Gladiator",
			legion_id:"5962",
			legion_name:"Behemoths Woelfe",
			chartitle:"Arbolus Gesegneter"
		}		
 	] ;						
result_page="<div class=\"spacer2\"></div> ";

Ich brauche die Passage zwischen bzw. inkl. result_arr =[ und ].

Weiss aber nicht wie ich das hinbekommen soll. Könnte mir da vieleicht jemand ein wenig unter die Arme greifen ?

LG

Jan
 
Reguläre Ausdrücke. Damit kannst ud das lösen.
preg_match()


PHP:
$pattern = '/result_arr =\[([^\]]*)\]/is';
$result = preg_match($pattern, $subject, $subpattern);
echo $subpattern[1];
?>
 
Ich würde mal sagen, dass in so einem Fall reguläre Ausdrücke (RegEx) dein Freund sind. Probier mal folgendes aus:
PHP:
<?php  
$string = <<<SOURCE
"dispQuery="Haudraufuss";             
result_start="0"; 
result_total="1"; 
  
result_arr =[  
    { 
            url:"http://de.aiononline.com/livestatus/character-legion/search?charID=400926&serverID=37", 
            collid:"aionuser", 
            docid:"37A400926", 
            gender_id:"0", 
            race_id:"0", 
            race_name:"Elyos", 
            char_id:"400926", 
            char_name:"<strong>Haudraufuss</strong>", 
            level:43, 
            server_id:"37", 
            server_name:"Thor", 
            class_name:"Gladiator", 
            legion_id:"5962", 
            legion_name:"Behemoths Woelfe", 
            chartitle:"Arbolus Gesegneter" 
        }        
    ] ;                      
result_page="<div class=\"spacer2\"></div> ";"
SOURCE; 
$regex = '/result_arr[ ]*=[ ]*[[ ]*([^]]*)[ ]*][ ]*;/';  
preg_match ($regex, $string, $output);
 
Hey,

danke euch für die schnellen antworten.

Dann war ich schon auf dem richtigen weg ;). Ich habe nur meine Probleme mit dem hier:

Code:
$regex = '/result_arr[ ]*=[ ]*[[ ]*([^]]*)[ ]*][ ]*;/';

Ich weiss nicht wenn ich nach zum Beispiel nach "{" und "}" suchen will was dort drin stehen muss.

Könntet Ihr mir evtl. sagen wenn ich nur folgendes haben will was dann der $regex im preg_match() sein muss?

Code:
{ 
            url:"http://de.aiononline.com/livestatus/character-legion/search?charID=400926&serverID=37", 
            collid:"aionuser", 
            docid:"37A400926", 
            gender_id:"0", 
            race_id:"0", 
            race_name:"Elyos", 
            char_id:"400926", 
            char_name:"<strong>Haudraufuss</strong>", 
            level:43, 
            server_id:"37", 
            server_name:"Thor", 
            class_name:"Gladiator", 
            legion_id:"5962", 
            legion_name:"Behemoths Woelfe", 
            chartitle:"Arbolus Gesegneter" 
}

Gibt es eig. irgendwo nen HowTo für diese Geschichte: "/result_arr[ ]*=[ ]*[[ ]*([^]]*)[ ]*][ ]*;/" ?
 
Ich frag' mich gerade, ob du mein Skript schon mal probiert hast, denn wenn, dann wüsstest du, da bei diesem ebendies herauskommt. Du musst darauf dann nur wie folgt darauf zu greifen:
PHP:
$output[1];
Das Ganze kannst du dir hier noch einmal genauer ansehen.
 
Falls du das Ganze direkt in ein PHP-Array überführen willst, dann versuch einfach mal folgendes:
PHP:
$array = json_decode($output[0]);
 
Zurück