2011-09-09 5 views
0

可能性の重複を働いていない置き換えます
RegEx match open tags except XHTML self-contained tagsPHPのプリプレグは

こんにちは最初に私の私は初心者だと言うしたいと思います。

私の問題は、ビデオサイトを開発していて、サイトが他のサイトからXMLを取得して、そのデータをデータベースに保存していることです。埋め込みで

が追加されます:

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

とテキストとのachorはこちら無料動画をアップロードします。

ここではpreg replaceを使用してこれらを削除したいと思いますが、動作しません。

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を変更すると、それは私に与えられ、それは無効であるというエラーを出します。

誰かが間違っていることを指摘してもらえますか?

+0

固定マークアップを追加した場合、それを削除するために正規表現が必要な理由は何ですか?また、エラーメッセージが表示された場合は、それらの曖昧な説明を提供しません。リテラルメッセージを代わりにコピーしてください。 –

+1

なぜHTMLパーサーを使用しないのですか? – ThiefMaster

+0

親指のためのthnaks :)それを保つ... :) – Side

答えて

2

Preg_replaceはパラメータを変更しません。配列や文字列を返すだけです(パラメータの種類に応じて)。

+0

情報のおかげで新しい何かを学んだ – Side

+0

あなたの問題を解決しましたか? – Raveline

関連する問題