hur kan man gå tillväga för att hämta ut resultatet av en sökning från
t.ex. blocket till en array med de olika värdena (pris, rubrik, stad etc).. ?
behöver lite grundliga tips.
Nu har jag lyckats hämta med file_get_contents och resultatet blir ungefär såhär:
<table>
<tr>
<td class="datum">25/5 2006</td>
<td class="rubrik">Volvo 740 -93</td>
</tr>
</table>
Jag vill nu splitta upp datan till en array med följande utseende:
<?
array(
"datum" => array(
"25/5 2006"
);
"rubrik" => array(
"Volvo 740 -93"
);
);
?>
Någon som har ett förslag på hur jag ska gå till väga?
MVH Erik.
XPath ihop med DOM eller SimpleXML
XPAth selektorerna torde bli typ:
//td[datum]
//td[rubrik]
Detta betyder: Hitta alla td-element som har klassen "datum" eller rubrik. ungefär som "td.datum" i CSS.
Hmm jag har absolut ingen erfarenhet av varken "XPath" eller "DOM" eller "SimpleXML" så jag vore tacksam för en grundlig vägledning.
<?php
$string = <<<EOT
<table>
<tr>
<td class="datum">25/5 2006</td>
<td class="rubrik">Volvo 740 -93</td>
</tr>
<tr>
<td class="datum">23/6 2006</td>
<td class="rubrik">Saab 9-5</td>
</tr>
</table>
EOT;
$xml = new SimpleXMLElement($string);
$alla_datum = $xml->xpath('//td[@class="datum"]');
$alla_rubriker = $xml->xpath('//td[@class="rubrik"]');
$data = array();
while(list( , $datum) = each($alla_datum)) {
/* Flytta till vanlig array behövs egentligen inte men ok */
$data['datum'][] = (string)$datum;
list( , $bil) = each($alla_rubriker);
$data['rubrik'][] = (string)$bil;
}
// Testa
var_dump($data);
Oops! Jag hade lite fel om XPAth uttrycken. De riktiga finns i koden ovan.
Är SimpleXML något som är inbyggt i PHP eller är det nåt jag måste installera för att det ska funka?
PeddaMedlem sedan juni 20006 032 inlägg SimpleXML är med i PHP 5 och är aktiverat som default.
Får felmeddelanden liknande:
Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 1: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xE4 0x74 0x74 0x65 in
Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: ct_code/1/sort/-fulldate/type_label/S%E4ljes/id/A10583897/category_name/Bostadsr in
Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: e v" src="/images/58/38/97/A10583897/image_1_37380small.jpg" height="48" border= in