Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, estou com um problema...
Tenho um arquivo texto q fica no servidor e preciso pegar determinadas informações dele, criei essa função:
<?php
function open_text($filename)
{
$handle = fopen($filename,'r');
if($handle)
{
$content = "";
while(!feof($handle))
{
$content .= fread($handle, 4096);
}
fclose($handle);
return $content;
}
}
$filename = "ARQUIVO.tmp"
$aux = str_replace("\n", "", open_text($filename));
$aux = str_replace("\r", "", $aux);
preg_match('/<transaction-id.*<\/transaction-id>/i', $aux, $tIDtext);
preg_match('/<param-value>.*<\/param-value>/i', $aux, $tCODStext);
echo '<br>' . $tIDtext[0];
print_r($tCODStext);
?>
O arquivo tmp contém :
<?xml version="1.0" encoding="UTF-8"?>
<mse-response>
<status-code>0</status-code>
<profile>ACSD</profile>
<transaction-id>1041008261307810865</transaction-id>
<parameters>
<param-item>
<param-name>COD1</param-name>
<param-value>1457650.0</param-value>
</param-item>
<param-item>
<param-name>COD2</param-name>
<param-value>1000.0</param-value>
</param-item>
<param-item>
<param-name>COD3</param-name>
<param-value>19790267944336</param-value>
</param-item>
<param-item>
<param-name>COD4</param-name>
<param-value>007686614990234</param-value>
</param-item>
</parameters>
</mse-response>
Meu problema é que com a função, eu consigo pegar o código de ID que esta entre as tags <transaction-id></transaction-id>, mas quando faço pra pegar as outras informações que estão entre <param-name></param-name>, como existe mais de um, ele pega desde a primeira tag <param-name> q aparece até a ultima </param-name>...Queria saber como posso pegar as outras informações.
Se alguém puder me ajudar...
Agradeço desde já.
Carregando comentários...