PHP получить часть строки до div и после comman

Пожалуйста, кто-нибудь может мне помочь? Мне нужно только получить часть слова в строке, используя PHP. В следующем примере мне нужно получить слово Kimberley из следующей строки:

13 Angel Street, El Toro Park, Kimberley <div Id='rentals' Class='rentals'>Agencies</div> <div Id='rentalsix' Class='rentals'>5</div>

Я пробовал следующее:

$searchaddress = 13 Angel Street, El Toro Park, Kimberley <div Id='rentals' 
Class='rentals'>Agencies</div> <div Id='rentalsix' Class='rentals'>5</div>;

preg_match('|<[^>]*rentals[^>]*>(.*?)<|', $searchaddress, $m);
$newvalue = $m[1];
echo htmlspecialchars($newvalue));

Это работает, но это только выдает слово Agenncies из строки. Мне нужно слово Кимберли.

3 ответа

Решение

Я надеюсь, это поможет.

  //this is your string.
    $text = '13 Angel Street, El Toro Park, Kimberley <div Id=\'rentals\' Class=\'rentals\'>Agencies</div> <div Id=\'rentalsix\' Class=\'rentals\'>5</div>';
    //find position of ',' from where you want to explode using strrpos
        $pos=strrpos($text,',',2);
    // explode string from given postion.
        $text=substr($text,$pos);
    //find the text that exist between ',' and  starting bracket of div '<'
        preg_match('#,(.*?)<#', $text, $match);
    // output
        var_dump( $match[1]);

Чтобы игнорировать теги HTML, используйте strip_tags PHP функция подробнее смотрите эту ссылку STRIPTAGS.

Если вы хотите первую строку перед первым div, используйте explode функция.

$searchaddress = 13 Angel Street, El Toro Park, Kimberley <div Id='rentals' 
Class='rentals'>Agencies</div> <div Id='rentalsix' Class='rentals'>5</div>;

strip_tags($searchaddress);

Чтобы получить только первую часть строки.

$str   =   explode("<div",$searchaddress);
echo $str[0];
$exp = explode(' <div', $searchaddress );
$exp = explode(' ', $exp[0]);
$exp = $exp[count($exp)-1];

как вариант.

Другие вопросы по тегам