2011-12-07 79 views
0

我試圖用指代Youtube,wordpress博客的標籤替換[youtube id='THEYOUTUBEID' width='600' height='350']。我使用簡單的HTML DOM解析器。儘管我做到了,但並沒有保存到每一篇文章中。php簡單的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

你問爲什麼它沒有保存到數據庫?因爲代碼中沒有查詢將新信息發送回上游數據庫,除非您的$ iframe對象在您設置其純文本屬性時自動處理它... – rdlowrey

+0

不,iframe對象不會這樣做。我認爲它確實是愚蠢的。現在我明白我必須有更新查詢才能保存它... – nasia

回答

0

看來你忘記保存更改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; 
}