Mon, 13/10/2008 - 22:39 — horuskol
<?php /** * function astrstr() * * Function to find the first instance of any needle from an array of strings * within a string * * * @author Stuart Jones <stuart@random-tweak.co.uk> * @copyright Copyright 2008 Stuart Jones * @version 08.11.25 * @license <a href="http://www.gnu.org/licenses/gpl.html<br /> " title="http://www.gnu.org/licenses/gpl.html<br /> ">http://www.gnu.org/licenses/gpl.html<br /> </a> * * @param string $haystack * @param array<string> $needles * @param [int $offset] * @param [int $flags] */ // define constants for function flags if (!defined('ASTR_NEEDLE_ORDER')) { define('ASTR_NEEDLE_ORDER', 1); }
Mon, 13/10/2008 - 22:39 — horuskol
Description
Parameters
The string to search in
An array of strings to search in the haystack for
Mon, 13/10/2008 - 22:39 — horuskol
<?php include "astrstr.php"; $needles = array( 'apple', 'banana', 'pear', 'orange', ); $haystack = 'The fruiterer has some bananas and apples today. Unfortunately, there are no oranges, but the pears will be in tomorrow.'; // this will return the string from the first instance of 'banana' // the first needle in the haystack echo astrstr($haystack, $needles) . "\r\n"; // this will return the string upto the first instance of 'banana' // the first needle in the haystack echo astrstr($haystack, $needles, 0, ASTR_BEFORE_NEEDLE) . "\r\n";
Mon, 13/10/2008 - 22:39 — horuskol
I found myself trying to locate a PHP function in their library last week that didn’t seem to exist. I had a number of strings in an array, and needed to simply find out if one of them was in a string – and I needed to do it at various points. However, I could only find functions that let me search for a single needle in an array of haystacks.
So I made one myself:
Mon, 13/10/2008 - 22:39 — horuskol
Source code: Function astrpos()
<?php /** * function astrpos() * * Function to find the position of the first instance of any needle * from an array of strings within a string * * * @author Stuart Jones <stuart@random-tweak.co.uk> * @copyright Copyright 2008 Stuart Jones * @version 08.10.13 * @license <a href="http://www.gnu.org/licenses/gpl.html<br /> " title="http://www.gnu.org/licenses/gpl.html<br /> ">http://www.gnu.org/licenses/gpl.html<br /> </a> * * @param string $haystack * @param array<string> $needles * @param [int $offset] * @param [int $flags] */ // define constants for function flags
Mon, 13/10/2008 - 22:39 — horuskol
Description
Returns the numeric position of either the first needle found in the haystack, or the first instance of a needle in the haystack.
Parameters
The string to search in
An array of strings to search in the haystack for
Mon, 13/10/2008 - 22:39 — horuskol
<?php include_once('astrpos.php'); // or however you want to include it $needles = array( 'apple', 'banana', 'pear', 'orange' ); $haystack = 'The fruiterer has some bananas and apples today. Unfortunately, there are no oranges, but the pears will be in tomorrow.'; // this will return the position of 'banana' - the first needle in the haystack echo astrpos($haystack, $needles) . '<br>'; // this will return the position of 'apple' - the first needle in the array of needles echo astrpos($haystack, $needles, 0, ASTR_NEEDLE_ORDER) . '<br>';