Don't slurp in entire file. Props tellyworth. see #4421
git-svn-id: http://svn.automattic.com/wordpress/trunk@5802 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
d8d651221c
commit
b6978b2123
|
@ -85,39 +85,46 @@ class WP_Import {
|
||||||
|
|
||||||
function get_entries() {
|
function get_entries() {
|
||||||
set_magic_quotes_runtime(0);
|
set_magic_quotes_runtime(0);
|
||||||
$importdata = array_map('rtrim', file($this->file)); // Read the file into an array
|
|
||||||
|
|
||||||
$this->posts = array();
|
$this->posts = array();
|
||||||
$this->categories = array();
|
$this->categories = array();
|
||||||
$num = 0;
|
$num = 0;
|
||||||
$doing_entry = false;
|
$doing_entry = false;
|
||||||
foreach ($importdata as $importline) {
|
|
||||||
if ( false !== strpos($importline, '<wp:category>') ) {
|
|
||||||
preg_match('|<wp:category>(.*?)</wp:category>|is', $importline, $category);
|
|
||||||
$this->categories[] = $category[1];
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ( false !== strpos($importline, '<item>') ) {
|
|
||||||
$this->posts[$num] = '';
|
|
||||||
$doing_entry = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ( false !== strpos($importline, '</item>') ) {
|
|
||||||
$num++;
|
|
||||||
$doing_entry = false;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ( $doing_entry ) {
|
|
||||||
$this->posts[$num] .= $importline . "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($this->posts as $post) {
|
$fp = fopen($this->file, 'r');
|
||||||
$post_ID = (int) $this->get_tag( $post, 'wp:post_id' );
|
if ($fp) {
|
||||||
if ($post_ID) {
|
while ( !feof($fp) ) {
|
||||||
$this->posts_processed[$post_ID][0] = &$post;
|
$importline = rtrim(fgets($fp));
|
||||||
$this->posts_processed[$post_ID][1] = 0;
|
|
||||||
|
if ( false !== strpos($importline, '<wp:category>') ) {
|
||||||
|
preg_match('|<wp:category>(.*?)</wp:category>|is', $importline, $category);
|
||||||
|
$this->categories[] = $category[1];
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ( false !== strpos($importline, '<item>') ) {
|
||||||
|
$this->posts[$num] = '';
|
||||||
|
$doing_entry = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ( false !== strpos($importline, '</item>') ) {
|
||||||
|
$num++;
|
||||||
|
$doing_entry = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ( $doing_entry ) {
|
||||||
|
$this->posts[$num] .= $importline . "\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach ($this->posts as $post) {
|
||||||
|
$post_ID = (int) $this->get_tag( $post, 'wp:post_id' );
|
||||||
|
if ($post_ID) {
|
||||||
|
$this->posts_processed[$post_ID][0] = &$post;
|
||||||
|
$this->posts_processed[$post_ID][1] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose($fp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue