Menyalin daftar url halaman demi halaman ke dalam satu file xml di php


Status
Not open for further replies.

phey

Beginner 1.0
Adakah disini yang punya ide lebih bagus dan tepat untuk masalah ini, saya mau bikin script buat menyalin url ke dalam file xml, tapi page by page .. tujuan nya sih buat menghemat memory ..

My Code:
<?php
include('api.php');

$page = (int) $_GET['p'] ? (int) $_GET['p'] : 1;
$api = new getApi( array(
'filter' => 'new',
'page' => $page,
'limit' => 10
));

if ( $data = $api->getResult() ) {
$test = new XMLWriter();
$test->openURI(dirname(__FILE__) . '/test.xml');
$test->startDocument('1.0', 'UTF-8');
foreach($data as $datas) {
$test->startElement('url');
$test->text('http://localhost:8080/' . $datas['permalink']);
$test->endElement();
}
$test->endDocument();
} else {
echo "Error !!!!";
}
?>
 

masiqbal

Hosting Guru
Verified Provider
Apakah pernah coba benchmark kalau tidak pakai XMLWriter apakah lebih cepat? Misalnya begini:

PHP:
if ( $data = $api->getResult() ) {
    $content = '<?xml version="1.0" encoding="UTF-8"?>';
    foreach($data as $datas) {
        $content .= '<url>http://localhost:8080/'.$datas['permalink'].'</ul>';
    }
    $fp = fopen(dirname(__FILE__) . '/test.xml', 'w');
    fwrite($fp, $content);
    fclose($fp);
} else {
    echo "Error !!!!";
}
 

phey

Beginner 1.0
Apakah pernah coba benchmark kalau tidak pakai XMLWriter apakah lebih cepat? Misalnya begini:

PHP:
if ( $data = $api->getResult() ) {
    $content = '<?xml version="1.0" encoding="UTF-8"?>';
    foreach($data as $datas) {
        $content .= '<url>http://localhost:8080/'.$datas['permalink'].'</ul>';
    }
    $fp = fopen(dirname(__FILE__) . '/test.xml', 'w');
    fwrite($fp, $content);
    fclose($fp);
} else {
    echo "Error !!!!";
}
Tapi kode ini akan menimpa data sebelumnya .. Jadi gini Tuan ..
saya akses http://localhost:8080/tes.php?p=1
Nah data dari page 1 di tulis ke file test.xml begitupun seterusnya page 2, page 3, page 4 di tulis ke file yang sama .. saya pernah nyoba melakukan yang hal yang Tuan lakukan di atas .. Lalu untuk mendapatkan data sebelum nya, saya DOM terus saya satukan data page 1 dengan page 2 ..dan seterusnya .. Tapi itu malah nambah beban Tuan ..
 

masiqbal

Hosting Guru
Verified Provider
Tapi kode ini akan menimpa data sebelumnya .. Jadi gini Tuan ..
saya akses http://localhost:8080/tes.php?p=1
Nah data dari page 1 di tulis ke file test.xml begitupun seterusnya page 2, page 3, page 4 di tulis ke file yang sama .. saya pernah nyoba melakukan yang hal yang Tuan lakukan di atas .. Lalu untuk mendapatkan data sebelum nya, saya DOM terus saya satukan data page 1 dengan page 2 ..dan seterusnya .. Tapi itu malah nambah beban Tuan ..

Kalau mau nerusin ngisi di file yg sama, tinggal diganti aja mode open filenya menjadi append.

$fp = fopen(dirname(__FILE__) . '/test.xml', 'a');
 

phey

Beginner 1.0
Kalau mau nerusin ngisi di file yg sama, tinggal diganti aja mode open filenya menjadi append.

$fp = fopen(dirname(__FILE__) . '/test.xml', 'a');
Terimakasih Makasih untuk semuanya yang sudah bantu saya hehe .. Saya sudah menemukan ide yang bagus .. Menyalin url secara serentak dan saya sudah menemukan cara yang lebih cepat dan hemat memory .. Kasus di tutup
 

masiqbal

Hosting Guru
Verified Provider
Terimakasih Makasih untuk semuanya yang sudah bantu saya hehe .. Saya sudah menemukan ide yang bagus .. Menyalin url secara serentak dan saya sudah menemukan cara yang lebih cepat dan hemat memory .. Kasus di tutup
Mungkin bisa di-share bagaimana caranya? Biar saya juga dapat ilmu baru. :)
 
Status
Not open for further replies.

Top