Hoi,

Ik heb een funtie welke ik wil voorzien van een loop zodat alle data welke aan de waarden voldoen worden getoond. Op dit moment stopt de functie na het eerst gevonden resultaat terwijl er in het bestand welke ik uitlees meerdere resulaten zou moeten opleveren. Weet iemand hoe ik dit kan oplossen?

function OphalenString($str, $start, $end)
{
$str_low = strtolower($str);
$pos_start = strpos($str_low, $start);
$pos_end = strpos($str_low, $end, ($pos_start + strlen($start)));
{
while( ($pos_start !== false) && ($pos_end !== false) )
{
$pos1 = $pos_start + strlen($start);
$pos2 = $pos_end - $pos1;
return substr($str, $pos1, $pos2);
}
}
}

yorick17 schreef op 13.12.2008 21:10
Zet je code even tussen tags en hoe kun je een while gebruiken als je geen variable hebt met een number waarde? Je kunt het ook proberen met for
http://nl.php.net/manual/en/control-structures.for.php


Wat bedoel je met "Zet je code even tussen tags"?
<?php
function OphalenString($str, $start, $end)
{
$str_low = strtolower($str);
$pos_start = strpos($str_low, $start);
$pos_end = strpos($str_low, $end, ($pos_start + strlen($start)));
{
while( ($pos_start !== false) && ($pos_end !== false) )
{
$pos1 = $pos_start + strlen($start);
$pos2 = $pos_end - $pos1;
return substr($str, $pos1, $pos2);
}
}
}
?>
in plaats van:
function OphalenString($str, $start, $end)
{
$str_low = strtolower($str);
$pos_start = strpos($str_low, $start);
$pos_end = strpos($str_low, $end, ($pos_start + strlen($start)));
{
while( ($pos_start !== false) && ($pos_end !== false) )
{
$pos1 = $pos_start + strlen($start);
$pos2 = $pos_end - $pos1;
return substr($str, $pos1, $pos2);
}
}
}
@Yorick: Ben ik nu scheel of is er totaal geen verschil tussen die twee stukjes code?

@Wim: wat wil je nu precies bereiken? Je while loop is daar vrij nutteloos, ik krijg het vermoeden dat je op zoek bent naar een gewoon if-statement.

Het lijkt erop dat je een deel uit een string wilt ophalen dat ligt tussen twee bepaalde stukjes ($start en $end) uit die string? Jouw code een stuk omgeschreven:
<?php
$sString = 'Een test string waar wat uit gehaald moet worden...';
$sStart = 'string';
$sEnd = 'worden';

function ophalenString($str, $start, $end)
{
$start_pos = strpos($str, $start);
$end_pos = strpos($str, $end, $start_pos + strlen($start));

if($start_pos !== false && $end_pos !== false)
{
return substr($str, $start_pos + strlen($start), $end_pos - $start_pos - strlen($start));
}
else
{
return false;
}
}

echo ophalenString($sString, $sStart, $sEnd);
?>
Klopt. Ik wil echter alle waarden retour krijgen wanneer de string bv

'Een test string waar wat uit gehaald moet worden en. Deze string zal ook moeten worden opgenomen.'

Ik ben dan dus op zoek naar beide strings.

1. waar wat uit gehaald moet
2. zal ook moeten



@Blanche
Wat ik duidelijk probeer te maken is dat je tags om je php code moet zetten zodat je hightlights krijgt.
Yorick,

Check, ik zal dit in het vervolg doen. Bedankt voor de tip!
Dan zou ik met preg_match aan de slag gaan:
<?php
$sString = 'Een test string waar wat uit gehaald moet worden en deze string zal ook moeten worden opgenomen.';
$sStart = 'string';
$sEnd = 'worden';

preg_match_all('_'.$sStart.'(.+?)'.$sEnd.'_i', $sString, $aMatches);

foreach($aMatches[1] as $sString)
{
echo $sString.'<br />';
}
?>
@Yorick: aha, duidelijk...
Hoi Blache.

Bedankt voor je oplossing! Hier kan ik mee verder.

Reageren