نمایش نتایج 1 تا 2 از 2

نام تاپیک: دریافت XML عظیم از وب سرویس و import به MySQL ظرف فقط چند ثانیه!

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    کلن
    پست
    121

    دریافت XML عظیم از وب سرویس و import به MySQL ظرف فقط چند ثانیه!

    بدلیل کمبود وقت و اصرار بعضی از دوستان عزیز مستقیم میرم سر اصل مطلب و بحث در مورد جزییات رو به خودتون میسپارم

    برای دریافت XML از یه سایت دیگه و ذخیره در سایت خودتون

    @$ContentsXml = file_get_contents('http://webservice.ir/');
    $TempXmlFile = fopen('Temp.xml', 'w');
    fwrite($TempXmlFile, $ContentsXml);
    fclose($TempXmlFile);
    unset($ContentsXml);
    unset($TempXmlFile);


    برای خواندن XML ذخیره شده در سایت خودتان

    $TempSimpleXmlVariable = simplexml_load_file('Temp.xml');

    بعد از اون لطفا حافظه رو آزاد کنین
    unlink('Temp.xml');

    حالا این XML رو به شکل CSV در میاریم

    $TempCsvFile = fopen('Temp.csv', 'w');
    foreach ($TempSimpleXmlVariable->Item as $OneItem) {
    fputcsv($TempCsvFile, (str_replace("&","&",get_object_vars($OneItem) )),',','"');
    }
    fclose($TempCsvFile);

    حالا فقط کافیه فایل CSV مون رو با یه دستور وارد Table کنیم

    $Load_Data_Result = mysql_query("LOAD DATA LOCAL INFILE '/.../htdocs/Temp.csv' INTO TABLE `MyTable` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n'");

    درنهایت هم فایلمونو پاک میکنیم
    unlink("Temp.csv");

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    کلن
    پست
    121

    نقل قول: دریافت XML عظیم از وب سرویس و import به MySQL ظرف فقط چند ثانیه!

    با این روش موفق میشیم حدود سی میلیون رکورد رو در حدود یک دقیقه توی تیبل خودمون بریزیم
    توجهتون رو به تاپیکهای زیر جلب میکنم:
    https://barnamenevis.org/showthread.p...A8%D8%A7%D8%B1!
    و
    https://barnamenevis.org/showthread.p...8%AF%D8%B1-php

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •