preg_replace replaced niet alles

Status
Niet open voor verdere reacties.

boembery

Gebruiker
Lid geworden
9 jan 2011
Berichten
44
Hallo,

Ik heb een script ergens gedownload, maar omdat het script niet werkte vanwege "ereg_replace" (die deprecated is) heb ik dezen vervangen naar preg_replace.

Ik kan wel PHP, en het werkt ook wel, maar hij neemt niet alles mee.
een stukje code:

PHP:
<?php
 fputs($scfp,"GET /admin.cgi?pass=".$scpass."&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
 while($loop[$y]!=''){
  $pageed = preg_replace("/.*<".$loop[$y].">/", "", $page);
  $scphp = strtolower($loop[$y]);
  $$scphp = preg_replace("/<\/".$loop[$y].">.*/", "", $pageed);
  if($loop[$y]==XXSPS)
   $$scphp = urldecode($$scphp);

  $y++;
 }
?>

waarin $page een XLM-broncode is, en $loop[$y] de dingen aangeeft tussen welke 2 dingen ik de waarde nodig heb

<HALLO>82</HALLO>
(dan haalt hij eruit: $hallo = 82)

Alleen, een probleem:
Als ik als het voorbeeld hierboven iets eruit wil halen, Output hij niet alleen 82, maar ook "HTTP/1.0 200 OK Content-Type:text/xml" er bij.
Dat maakt de output: HTTP/1.0 200 OK Content-Type:text/xml 82

Ik wil eigenlijk alleen 82 hebben.

Ik heb geprobeerd die tekst te replacen, maar dat wil niet.

Wat moet ik doen wil het toch goedkomen? Want ik weet het niet meer.
Alvast bedankt
 
bij regel 6 kun je beter de preg_match functie gebruiken, de regex word dan zoiets:
/ <" . $ l o o p [ $ y ] . ">(?p<waarde>.*)< \ / " . $ l o o p [ $ y ] . ">/

als het nog niet helemaal lukt ben ik hier natuurlijk om te helpen,
ecross
 
Waarom ga je de XML niet als een XML behandelen? ;)

PHP heeft genoeg functies om een XML-document door te lezen en wat met de inhoud te doen.

PHP:
<?php
$scpass = '';

$doc = new DOMDocument();
$doc->load('admin.cgi?pass='.$scpass.'&mode=viewxml');
print_r($doc->saveXML());
?>
http://nl.php.net/manual/en/book.dom.php
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan