note 68226 added to function.strpos
| From: | wormss at wormss dot net | Date: | Wed, 19 Jul 2006 00:26:21 +0000 |
| Subject: | note 68226 added to function.strpos | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-114903@lists.php.net to get a copy of this message | ||
Im sure there are more efficient methods of this, but i use this alot when dealing with rss and was
proud of it.
<?
function data_from_element($needle,$haystack,$tags=FALSE) { // Expects two Strings, returns Array
$needle_start = "<".$needle.">"; $needle_end =
"</".$needle.">";
$array = array(); $pos_start = 0;
while(($pos_start = strpos($haystack,$needle_start,$pos_start)) !== false) {
$pos_end = strpos($haystack,$needle_end,$pos_start);
if($tags) $array[] = substr($haystack,$pos_start,$pos_end-$pos_start+strlen($needle_end));
else $array[] = substr($haystack,$pos_start + strlen($needle_start),$pos_end - $pos_start -
strlen($needle_start));
$pos_start++;
}
return $array;
}
d
//example
$rss = '<?xml version="1.0"?> <rss version="2.0">
<channel> <title>Example RSS</title> <description>Example RSS
Description</description> <link>http://example.com/rss/</link> <item>
<title>Example RSS 1</title> <link>http://example.com/rss/1.html</link>
<description>Example 1</description> </item> <item> <title>Example RSS
2</title> <link>http://example.com/rss/2.html</link>
<description>Example 2</description> </item> </channel> </rss>';
$items = data_from_elements(link,$rss); // $rss[0] => "http://example.com/rss/"
$items = data_from_elements(link,$rss,true); // $rss[0] => "<link> http://example.com/rss/ </link>"
?>
----
Server IP: 85.116.0.130
Probable Submitter: 84.9.173.239
----
X-Spam-Status: No, hits=3.3 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER,
HTML_MESSAGE autolearn=no version=2.64
----
Manual Page -- http://www.php.net/manual/en/function.strpos.php
Edit -- http://master.php.net/note/edit/68226
Del: integrated -- http://master.php.net/note/delete/68226/integrated
Del: useless -- http://master.php.net/note/delete/68226/useless
Del: bad code -- http://master.php.net/note/delete/68226/bad+code
Del: spam -- http://master.php.net/note/delete/68226/spam
Del: non-english -- http://master.php.net/note/delete/68226/non-english
Del: in docs -- http://master.php.net/note/delete/68226/in+docs
Del: other reasons-- http://master.php.net/note/delete/68226
Reject -- http://master.php.net/note/reject/68226
Search -- http://master.php.net/manage/user-notes.php