php preg_replace无法正常工作

时间:2011-09-09 09:10:00

标签: php preg-replace

  

可能重复:
  RegEx match open tags except XHTML self-contained tags

首先我想说我是初学者。

我的问题是我正在开发一个视频网站,该网站从其他网站提取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>";
        }

    }

试图找出我失踪的东西。如果我运行脚本它什么都不做,如果我改变 - to /它给我和错误它是无效的。

有人可以指出我做错了吗?

1 个答案:

答案 0 :(得分:2)

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