我在在线编辑器里输入一段文字并且插入了一张图片,提交到后台后,得到获取到的数据是:sadsadasda<IMG src=\"http://www.ct.com/uploadfile/200901141231909849.jpg\">这段内容插入到数据表的content字段,但是我想将这段数据的src里的内容提出http://www.ct.com/uploadfile/200901141231909849.jpg插入到数据表的image_url字段里,怎么提取?

解决方案 »

  1.   

    例子如下:$data = 'sadsadasda <IMG src="http://www.ct.com/uploadfile/200901141231909849.jpg"> sadsadasda <IMG src="http://www.ct.com/uploadfile/200901141231909849.jpg">sadsadasda <IMG src="http://www.ct.com/uploadfile/200901141231909849.jpg">';
    preg_match_all("/<img[^>]*src=[\'\"\s]*([^\s\'\"]+)[^>]*>/i", $data, $match);
    print_r($match);//结果如下
    Array
    (
        [0] => Array
            (
                [0] => <IMG src="http://www.ct.com/uploadfile/200901141231909849.jpg">
                [1] => <IMG src="http://www.ct.com/uploadfile/200901141231909849.jpg">
                [2] => <IMG src="http://www.ct.com/uploadfile/200901141231909849.jpg">
            )    [1] => Array
            (
                [0] => http://www.ct.com/uploadfile/200901141231909849.jpg
                [1] => http://www.ct.com/uploadfile/200901141231909849.jpg
                [2] => http://www.ct.com/uploadfile/200901141231909849.jpg
            ))但你那个sadsadasda <IMG src=\"http://www.ct.com/uploadfile/200901141231909849.jpg\"> 有加了反斜杠..就把正则写再转义之前把~
      

  2.   

    1如果HTML是和文件一起提交的,那么在$_FILES取提取信息2如果只是提交的HTML代码,文件之前已经提交
    那么正则取匹配,不过这种方式有很多不足
      

  3.   


    <?php 
    $str="sadsadasda <IMG src=\"http://www.ct.com/uploadfile/200901141231909849.jpg\"> ";preg_match('/ <IMG.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim',$str,$match);echo $match[1];
    ?>