parser ciągu

0

Witajcie, przepisałem dość prosty parser z Delphi i wydaje się że wszystko jest ok, ale nie działa :/

Mój kod w PHP:

<?php

function parse($Str, $StrBegin, $StrEnd) 
{
$B = 0;
$E = 0;

if($StrBegin == '')
{
 $B = 1;
}
else
{
 $B = StriPos($Str, $StrBegin);
}

if($B > 0)
{
$Str = SubStr($Str, $B + StrLen($StrBegin), PHP_INT_MAX);
	if ($StrEnd == '')
	{
	$E = StrLen($Str) + 1;
	}
	else
	{
	$E = StriPos($Str, $StrEnd);
	}
	if($E > 0)
	{
	Return StrLen($Str, 1, $E - 1);
	}
}

}


$txt='<alalula>';
$first='<';
$last='>';

echo parse($txt, $first, $last);

?>

i funkcja z Delphi

function Parse(Str, StrBegin, StrEnd : string) : string;
var
  B, E : integer;
begin
  Result := '';
  if StrBegin = '' then
  begin
    B := 1;
  end
  else
  begin
    B := Pos(StrBegin, Str);
  end;
  
  if B > 0 then
  begin
    Str := Copy(Str, B + Length(StrBegin), MaxInt);
    if StrEnd = '' then
    begin
      E := Length(Str) + 1;
    end
    else
    begin
      E := Pos(StrEnd, Str);
    end;
    if E > 0 then
    begin
      Result := Copy(Str, 1, E - 1);
    end;
  end;
end;
0

wydaje się że wszystko jest ok, ale nie działa

lol :D

  1. napisz jaki jest oczekiwany rezultat
  2. napisz jaki rezultat otrzymujesz
  3. podaj kilka przykładów
  4. nazywaj zmienne normalnie, jeżeli chcesz, żeby ktoś się zainteresował
0

Pewnie nie wziąłeś pod uwagę, że w PHP stringi są numerowane od zera.

1 użytkowników online, w tym zalogowanych: 0, gości: 1