PHP Strpos maar dan anders.

Status
Niet open voor verdere reacties.

karimbizid

Gebruiker
Lid geworden
19 dec 2006
Berichten
557
Hallo allen,

Wie kan en wil mij even verder op weg helpen?

Ik ben bezig met een systeem wat informatie laat zien aan de hand van het resultaat (in XML) uit een database.
Met PHP lees ik de XML file dus uit en doe ik wat met die info.
Het gaat hierbij om Apple producten.

Dit doe ik nu als volgt:

PHP:
<?

if (strpos($result, 'iPhone 5 ') !== FALSE)
    echo '<table align="centre" class="table_text" width="800" border="0".....
?>

Als het resultaat uit de database dus "iPhone 5" bevat, toont mijn systeem de juiste info voor een iPhone 5.

Nu is stap 2 dat ik andere info moet kunnen weergeven wanneer de iphone bijvoorbeeld uit 2013 komt.
Dus alleen "iPhone 5" toont "blabla" en "iPhone 5 (2013)" toont "blibli"

Hoe krijg ik dit nu het beste voor elkaar?

Ik heb al het eea opgezocht en geprobeerd, maar heb de oplossing nog niet gevonden.

Hoor het graag!

Karim
 
Dat is gedeeltelijk ook wat ik doe... Maar dan iets anders.

Ik krijg de resultaten adhv een URL waarin een serienummer wordt opgegeven.
Het serienummer ($sn) komt uit een form en zoals je ziet worden de laatste 4 tekens daarvan in de URL gestopt om een XML terug te laten komen met de juiste info.

Hier een stukje code:

PHP:
$sn = $_POST['sn'] ;

$curl = curl_init();        
curl_setopt ($curl, CURLOPT_URL, 'http://deurlwaardeinfovandaankom'.substr($sn,8).'&lang=en_US');   
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);   
$result = curl_exec ($curl);   

if ($result === false) {
    die('Error fetching data: ' . curl_error($curl));   
}

//iPhone 5c
if (strpos($result, 'iPhone 5c') !== FALSE)
    echo 'bepaalde output voor een iPhone 5C';
 
Ik begrijp het probleem niet, een XML hoort gewoon een duidelijke structuur te hebben waarbij je dus in een bepaald veld daarvan het model kunt achterhalen. Het lijkt er eerder op alsof je een pagina "scraped" om vervolgens in de HTML de gegevens te vinden.

Als je meerdere types wilt checken moet je die in de juiste volgorde laten checken. Waarbij de langste mogelijkheid eerst komt.
PHP:
if(strpos($result, "iPhone 5 (2013)") !== false) {

} elseif(strpos($result, "iPhone 5") !== false) {

}

Het is van belang dat je in de IF-ELSEIF blijft werken, doe je alleen meer IF dan matched hij op beide.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan