Funktion die einen bestimmen Wert eines Strings zurückgibt

ReemE

Mitglied
HAllo an Alle


$string = "abcdefghijklmnopqrstuvwxyz";
$anfang = "d";
$ende = "t";


Ich brauche eine Funktion, die mir das zurückgibt, was in $string zwischen $anfang und $ende liegt.

PHP:
function get_in_between($string, $anfang, $ende){
$string = strstr($string,$anfang);   // würde mir doch defghijklmnopqrstuvwxyz zurückgeben
$string = strrev(strstr(strrev($string),$ende)); // würde mir defghijklmnopqrst zurückgeben

return $string;
}

Das liefert mir aber nicht nur das zwischen $anfang und $ende, sondern auch deren Werte selber. Was kann ich da anders machen und würde mein obenstehender Code überhaupt funktionieren?

mfg

ReemE
 
Helfen [phpf]substr[/phpf] und [phpf]strpos[/phpf] nicht weiter?
PHP:
$a = strpos($string, $anfang);
$b = strpos($string, $ende, $a);
$s = substr($string,$a+1,($b-1)-($a+1));
 
Hallo,

mal schaun ob ich dich richtig verstanden habe:

PHP:
function get_in_between($string, $anfang, $ende)
{  
  $value1 = strstr($string,$anfang);   // würde mir doch defghijklmnopqrstuvwxyz zurückgeben
  $value2 = strrev(strstr(strrev(value1),$ende)); // würde mir defghijklmnopqrst zurückgeben
  $returnresult = array($value1,$value2);  
  return $returnresult ;
}

$test = function get_in_between($string, $anfang, $ende);
// $test ist nun der Array mit den Werten.

Ich hoffe es hat gepasst, ich weiß zwar nitt wofür aber Ok.
 
PHP:
function get_in_between($string, $start, $end){
		$a = strpos($string, $start);
		$b = strpos($string, $end);
				
		$result = substr($string,$a+strlen($start),$b+strlen($end)); 
		return $result;
}
das hier schien gut zu funktionieren, bis ich längere strings für $start und $end hatte.
 
Der letzte Parameter von [phpf]substr[/phpf] ist die Länge des neuen Strings, nicht der Endpunkt im alten, $a muss also auf jeden Fall im letzten Parameter auftauchen.
PHP:
<?
function get_in_between($string, $start, $end){
        $a = strpos($string, $start);
        $b = strpos($string, $end);

        $result = substr($string,
                $a+strlen($start),
                ($b)-($a+strlen($start)));
        return $result;
}
echo get_in_between("abcdefghijklmno","def","klm");
?>
 
Zurück