php-preg替换不起作用


php preg replace not working

可能重复:
RegEx匹配除XHTML自带标签之外的开放标签

你好,首先我想说我是一个初学者。

我的问题是,我正在开发一个视频网站,该网站从另一个网站提取xml,并将数据保存在我的数据库中。

在嵌入中添加一个:

<div style="margin:auto" align="center">-
embed here
</div>

和一个achor与文本上传免费视频在这里。

现在我想用preg替换来移除这些,但它不起作用。

function insertvids() {
        $url = "http://thesite/rss.xml";
        $data = simplexml_load_file($url, "SimpleXMLElement", LIBXML_NOCDATA);
        //print_r($data->channel->item);
        foreach ($data->channel->item as $r)
        {
          $title = $r->title; 
          $description = $r->description;
          $embed = $r->embed;
          $thumb = $r->image;
          $duration = $r->duration;
           $string = $r->embed;
           $replace = array();
           $replace[0] = '-<div style="margin:auto" align="center">-';
           $replace[1] = '-<a href="http://thesite.com" target="_blank">-';
           $replace[3] = '-Unlimited video upload for free.-';
           $replace[4] = '-</a></div>-';
            $replaceto = array();
            $replaceto[0] = ' ';
            $replaceto[1] = ' ';
            $replaceto[2] = ' ';
            $replaceto[3] = ' ';
            $replaceto[4] = ' ';

            preg_replace($replace, $replaceto, $string);
            $data = array(
              'title' => ''.$title.'', 
              'description' => ''.$description.'',
              'thumbnail' => ''.$thumb.'',
              'embed' => ''.$embed.'',
              'duration' => ''.$duration.'',
              'type' => 'slutload'
        );
            $this->db->insert('videos', $data);
            //print_r($data) . "<br>";
        }
    }

我想弄清楚我遗漏了什么。如果我运行脚本,它什么也不做,如果我将-更改为/,它会给我一个错误,即它无效。

有人能指出我做错了什么吗?

Preg_replace不会修改参数。它只会返回一个数组或一个字符串(根据参数的类型(。