Whats is the best way to obtain the content between two strings e.g.
ob_start(); include('externalfile.html'); ## see below $out = ob_get_contents(); ob_end_clean(); preg_match('/{FINDME}(.|\n*)+{\/FINDME}/',$out,$matches); $match = $matches[0]; echo $match; ## I have used .|\n* as it needs to check for new lines. Is this correct? ## externalfile.html {FINDME} Text Here {/FINDME}
For some reason this appears to work on one place in my code and not another. Am I going about this in the right way? Or is there a better way?
Also is output buffer the way to do this or file_get_contents?
Thanks in advance!
Syntax: $arr=explode(separator, string). This will return an array which will contain the string split on the basis of the separator. Split the list on the basis of the starting word.
Here's an example: $string = "foo I wanna a cake foo"; We call the function: $substring = getInnerSubstring($string,"foo"); It returns: " I wanna a cake ".
You can use the PHP strpos() function to check whether a string contains a specific word or not. The strpos() function returns the position of the first occurrence of a substring in a string. If the substring is not found it returns false .
You may as well use substr and strpos for this.
$startsAt = strpos($out, "{FINDME}") + strlen("{FINDME}"); $endsAt = strpos($out, "{/FINDME}", $startsAt); $result = substr($out, $startsAt, $endsAt - $startsAt);
You'll need to add error checking to handle the case where it doesn't FINDME.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With