php simple html dom parser результат не сохраняется - PullRequest
0 голосов
/ 08 декабря 2011

Я пытаюсь заменить теги <iframe>, относящиеся к Youtube, блога WordPress, на [youtube id='THEYOUTUBEID' width='600' height='350'].Я использую простой HTML DOM парсер.Хотя я делаю это, это не сохраняется в каждом посте.

Может кто-нибудь помочь мне понять, где я не прав?

$result = mysql_query("SELECT `post_content`  FROM `wp_posts` WHERE `post_content` LIKE '<iframe%' ");

while($row = mysql_fetch_array($result)) {

  $postContent = str_get_html($row["post_content"]);  

   foreach($postContent->find("iframe") as $iframe) {
     $src = $iframe->src;  
     $last = substr( $src, strrpos( $src, '/' )+1 );

     if (stripos($src, "youtube")) {
       $neway = "[youtube id='".$last."' width='600' height='350']";
     } elseif (stripos($src, "vimeo")) {
        $neway = "[vimeo id='".$last."' width='600' height='350']";
     }

     $iframe->outertext = $neway;

     } 
 }

1 Ответ

0 голосов
/ 20 января 2014

кажется, что вы забыли сохранить изменения в sqldb .. вы также забыли получить уникальный идентификатор для таблицы ... сначала отредактируйте результат $ в

$result = mysql_query("SELECT `id`,`post_content`  FROM `wp_posts` WHERE `post_content` LIKE '<iframe%' ");

, затем вставьте

mysql_query('UPDATE `wp_posts`  SET `post_content` = \''.mysql_real_escape_string($postContent->save()).'\' WHERE `id` = '.$row["id"]);

ПОСЛЕ ЭТОГО

 $iframe->outertext = $neway;
 }
...