I've one string in a variable titled $message as follows :
$message = 'posted an event in <a href="http://52.1.47.143/group/186/">TEST PRA</a>';
I only want to get the text within anchor tag i.e. TEST PRA in this case using PHP.
How should I do this in an efficient way? Can someone please help me in this regard?
Thanks in advance.
Use preg_match_all function inorder to do a global match.
preg_match_all('~>\K[^<>]*(?=<)~', $str, $match);
Here preg_match would be enough. \K discards the previously matched characters from printing at the final, so it won't consider the previouslly matched > character. You could use a positive lookbehind instead of \K also , like (?<=>). [^<>]* Negated character class, which matches any character but not of < or >, zero or more times. (?=<), Positive lookahead assertion which asserts that the match must be followed by < character.
$str = 'posted an event in <a href="http://52.1.47.143/group/186/">TEST PRA</a>';
preg_match('~>\K[^<>]*(?=<)~', $str, $match);
print_r($match[0]);
Output:
TEST PRA
来源:https://stackoverflow.com/questions/29048706/how-to-extract-the-text-between-anchor-tag-in-php