2011-09-09 2 views
0

Possible en double:
RegEx match open tags except XHTML self-contained tagsphp preg remplacer ne fonctionne pas

Bonjour d'abord je voudrais dire que je suis un débutant.

Mon problème est que je suis en train de développer un site vidéo, le site tire un xml d'un autre site, et enregistre les données dans ma base de données.

Dans Embed ajoute un:

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

Et un Acor texte télécharger gratuitement des vidéos ici.

Maintenant, je voudrais supprimer ceux-ci avec le remplacement preg mais il ne fonctionne pas.

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>"; 
     } 

    } 

essayait de comprendre ce qui im ​​manque. Si je cours le script il ne fait rien, si je change le - à/il me donne et l'erreur que ce n'est pas valide.

Quelqu'un pourrait-il me dire ce que je fais de mal?

+0

S'il ajoute un balisage fixe, pourquoi avez-vous besoin d'expressions régulières pour le supprimer? En outre, lorsque vous obtenez des messages d'erreur, ne les fournissez pas de manière vague: copiez plutôt le message littéral. –

+1

Pourquoi n'utilisez-vous pas un analyseur HTML? – ThiefMaster

+0

thnaks pour les pouces vers le bas :) keep it up ... :) – Side

Répondre

2

Preg_replace ne modifie pas les paramètres. Il ne retournera qu'un tableau ou une chaîne (selon le type de paramètres).

+0

merci pour l'info appris quelque chose de nouveau – Side

+0

Cela a-t-il résolu le problème? – Raveline