php页面中,有个变量的值如下:交通状况:17.209,229,228,旅游2路,夜间306<br><br><img width='500' height='336' src='/pic/201101161024559314401.jpg'/><br><br>
<img width='500' height='336' src='/pic/201101161024559314401.jpg'/>现需:1 把标签以外的内容取出来,应该得到(交通状况:17.209,229,228,旅游2路,夜间306)
2 把img的src输出来,应该为(/pic/201101161024559314401.jpg|/pic/201101161024559314401.jpg)
这应该如何实现,thanks
<img width='500' height='336' src='/pic/201101161024559314401.jpg'/>现需:1 把标签以外的内容取出来,应该得到(交通状况:17.209,229,228,旅游2路,夜间306)
2 把img的src输出来,应该为(/pic/201101161024559314401.jpg|/pic/201101161024559314401.jpg)
这应该如何实现,thanks
$str = strip_tags($html);
preg_match("|<img.*src='(.*)'/>|im", $html, $match);
$src = $match[1];我提供代码,你提供分,怎么样?:)
<img width='500' height='336' src='/pic/201101161024559314401.jpg'/>";
preg_match("/(^[^<>]*[^<>])/i",$str,$arr);echo $arr[1]; //第一个
//第二个还有点问题,只显示出来一个,今天困了,明天再搞搞
preg_match("/src='(.*)'\/>/i",$str,$arr2);
echo $arr2[1];
<img width='400' height='336' src='/pic/201101161024559314401.jpg'/>";
preg_match_all("/src='(.*)'\/>/i",$str,$arr2);
foreach($arr2[1] as $k => $v)
{
echo $k . " ".$v."<br />";
}
(PHP 4, PHP 5)preg_grep — 返回与模式匹配的数组单元 说明
array preg_grep ( string $pattern , array $input [, int $flags ] )
preg_grep() 返回一个数组,其中包括了 input 数组中与给定的 pattern 模式相匹配的单元。 flags 可以是以下标记: PREG_GREP_INVERT
如果传递入此标记,preg_grep() 会返回输入数组中不匹配给定 pattern 的单元。本标记自 PHP 4.2.0 起可用。 自 PHP 4.0.4 起,preg_grep() 返回的结果使用从输入数组来的键名进行索引。如果不希望这样的结果,用 array_values() 对 preg_grep() 返回的结果重新索引。
Example #1 preg_grep() 例子<?php
// return all array elements
// containing floating point numbers
$fl_array = preg_grep ("/^(\d+)?\.\d+$/", $array);
?> 还是得用正则,可以试一下楼上哥们的正则表达式
<img width='500' height='336' src='/pic/201101161024559314401.jpg'/>";
$preg = "/([^<>]*)?(?:(?:[a-z<>]*)<img(?:[^<>]*?)src=\'([^<>]*)\'\/>)/i";
preg_match_all($preg,$str,$out);
echo $out[0][0]; //img标签外的文字
echo $out[1][0]; //第一个img标签中的src的值
echo $out[1][1]; //第二个img标签中的src的值
//处理图片
function get_img_src($table)
{
preg_match_all('#<img[^>]*>#i',$table,$matches); //从内容中取出img标签
foreach($matches[0] as $m)
{
$table=$m;
$table = str_replace("'/>","",$table);
$table = str_replace("src='","",$table);
$table = str_replace("height='336'","",$table);
$table = str_replace("width='500'","",$table);
$table = str_replace("<img ","",$table);
$tables.=$table.'|';
}
$tables_arr=explode("|",$tables);
$str='\r';
foreach($tables_arr as $value)
{
if($value!='' && $value!=NULL )
{
$str.=" \r \r " ;
}
}
return $str;
}