تبدیل داده‌های متنی ساده به یک فایل ساختار یافته CSV یک نیاز مکرر برای خطوط داده است، به‌ویژه هنگام کار با لاگ‌ها یا خروجی‌های قدیمی. Aspose.BarCode Cloud SDK for PHP یک کتابخانه قدرتمند فراهم می‌کند که بر روی سرور شما اجرا می‌شود و نیازی به ابزارهای خارجی ندارد. این راهنما نشان می‌دهد چگونه TXT به CSV بدون ابزارهای خارجی در PHP را انجام دهید، ارائه یک راه‌حل حافظه‑کارآمد که به‌صورت مستقیم جریان‌ها را می‌خواند و می‌نویسد. همچنین یک مثال سریع تولید بارکد را خواهید دید که قابلیت‌های اصلی SDK را به نمایش می‌گذارد.

مراحل تبدیل TXT به CSV بدون ابزارهای خارجی در PHP

  1. نصب SDK از طریق Composer: فرمان نصب رسمی را اجرا کنید تا کتابخانه به پروژه شما اضافه شود.

    composer require aspose/barcode-cloud-php
    
  2. پیکربندی اعتبارهای کلاینت: یک شیء Configuration ایجاد کنید و AppSid و AppKey خود را تنظیم کنید.

$config = new Configuration();
$config->setAppSid('YOUR_CLIENT_ID');
$config->setAppKey('YOUR_CLIENT_SECRET');
$config->setHost('https://api.aspose.cloud');
$barcodeApi = new BarCodeApi($config);

برای مستندات جزئی کلاس به مرجع API مراجعه کنید.

  1. باز کردن فایل TXT منبع با SplFileObject: این کلاس فایل را خط به خط می‌خواند و مصرف حافظه را کم نگه می‌دارد.

    $txtFile = new SplFileObject($inputTxtPath, 'r');
    $txtFile->setFlags(
        SplFileObject::READ_AHEAD |
        SplFileObject::SKIP_EMPTY |
        SplFileObject::DROP_NEW_LINE
    );
    
  2. ایجاد جریان خروجی CSV و تعیین جداکننده مورد استفاده در فایل TXT (مثلاً تب).

$csvHandle = fopen($outputCsvPath, 'w');
$txtDelimiter = "\t";
  1. هر خط را پردازش کنید، فیلدها را تقسیم کنید و به CSV بنویسید. حلقه خطوط خالی را نادیده می‌گیرد و فاصله‌های اضافی را حذف می‌کند.
while (!$txtFile->eof()) {
    $rawLine = $txtFile->fgets();
    if ($rawLine === false) {
        continue;
    }

$line = trim($rawLine);
    if ($line === '') {
        continue;
    }

$fields = explode($txtDelimiter, $line);
    fputcsv($csvHandle, $fields);
}
  1. پاک‌سازی منابع و به‌صورت اختیاری یک بارکد نمونه تولید کنید تا استفاده از SDK را نشان دهد.
    fclose($csvHandle);
    $txtFile = null;
    

$barcodeRequest = new GenerateBarcodeRequest([ ’text’ => ‘Sample’, ’type’ => ‘Code128’, ‘format’ => ‘png’, ‘out_path’ => DIR . ‘/sample_barcode.png’ ]);

try { $barcodeApi->generateBarcode($barcodeRequest); } catch (Exception $e) { error_log(‘Barcode generation error: ’ . $e->getMessage()); }

<!--[CODE_SNIPPET_END]-->

با دنبال کردن این مراحل، یک **تبدیل TXT به CSV** خالص‑PHP دریافت می‌کنید که از هر ابزار خارجی یا فایل‌های میانی جلوگیری می‌کند.

## مثال کامل کد: تبدیل TXT به CSV بدون ابزارهای خارجی در PHP با API بارکد
مثال زیر شامل پیاده‌سازی کامل توصیف‌شده در مراحل است. این مثال یک فایل TXT ورودی را می‌خواند، خروجی CSV می‌نویسد و یک فراخوانی ساده برای تولید بارکد را نشان می‌دهد.

```php
<?php
require_once __DIR__ . '/vendor/autoload.php';

use Aspose\BarCode\Cloud\BarCodeApi;
use Aspose\BarCode\Cloud\Configuration;
use Aspose\BarCode\Cloud\Model\Requests\GenerateBarcodeRequest;

// -------------------------------------------------
// Aspose.BarCode Cloud SDK initialization (demo)
// -------------------------------------------------
$config = new Configuration();
$config->setAppSid('YOUR_CLIENT_ID');          // replace with your client id
$config->setAppKey('YOUR_CLIENT_SECRET');     // replace with your client secret
$config->setHost('https://api.aspose.cloud');
$barcodeApi = new BarCodeApi($config);

// -------------------------------------------------
// File paths (adjust as needed)
// -------------------------------------------------
$inputTxtPath  = __DIR__ . '/input.txt';
$outputCsvPath = __DIR__ . '/output.csv';

// -------------------------------------------------
// Open TXT file with SplFileObject for low memory usage
// -------------------------------------------------
$txtFile = new SplFileObject($inputTxtPath, 'r');
$txtFile->setFlags(
 SplFileObject::READ_AHEAD |
 SplFileObject::SKIP_EMPTY |
 SplFileObject::DROP_NEW_LINE
);

// -------------------------------------------------
// Open CSV output stream
// -------------------------------------------------
$csvHandle = fopen($outputCsvPath, 'w');
if ($csvHandle === false) {
 throw new RuntimeException('Unable to open CSV output file.');
}

// -------------------------------------------------
// Define the delimiter used in the TXT file (e.g., tab)
// -------------------------------------------------
$txtDelimiter = "\t";

// -------------------------------------------------
// Process each line: split and write to CSV
// -------------------------------------------------
while (!$txtFile->eof()) {
 $rawLine = $txtFile->fgets();
 if ($rawLine === false) {
     continue;
 }

$line = trim($rawLine);
 if ($line === '') {
     continue;
 }

$fields = explode($txtDelimiter, $line);
 fputcsv($csvHandle, $fields);
}

// -------------------------------------------------
// Cleanup resources
// -------------------------------------------------
fclose($csvHandle);
$txtFile = null;

// -------------------------------------------------
// Optional: generate a sample barcode to show SDK usage
// -------------------------------------------------
$barcodeRequest = new GenerateBarcodeRequest([
 'text'      => 'Sample',
 'type'      => 'Code128',
 'format'    => 'png',
 'out_path'  => __DIR__ . '/sample_barcode.png'
]);

try {
 $barcodeApi->generateBarcode($barcodeRequest);
} catch (Exception $e) {
 error_log('Barcode generation error: ' . $e->getMessage());
}
?>

توجه: این مثال کد عملکرد اصلی را نشان می‌دهد. قبل از استفاده از آن در پروژه خود، مطمئن شوید مسیرهای فایل (input.txt، output.csv و غیره) را به مکان‌های واقعی فایل‌های خود به‌روزرسانی کنید، اطمینان حاصل کنید تمام وابستگی‌های مورد نیاز به‌درستی نصب شده‌اند و به‌طور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک به تیم پشتیبانی مراجعه کنید.

تبدیل فایل‌های TXT به CSV از طریق REST API با cURL

همین تبدیل می‌تواند از طریق Aspose.BarCode Cloud REST API انجام شود. در ادامه یک جریان کاری معمولی با استفاده از cURL آورده شده است.

  1. دریافت یک توکن دسترسی (متغیرهای جایگزین را با اعتبارهای خود جایگزین کنید).
curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. بارگذاری فایل منبع TXT به ذخیره‌سازی ابری.
curl -X PUT "https://api.aspose.cloud/v3.0/storage/file/input.txt" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: text/plain" \
     --data-binary @input.txt
  1. یک نقطه انتهایی تبدیل سفارشی را فراخوانی کنید (فرضی) که فایل TXT بارگذاری‌شده را می‌خواند و محتوای CSV را برمی‌گرداند.
curl -X POST "https://api.aspose.cloud/v3.0/barcode/convert/txt-to-csv" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"inputPath":"input.txt","outputPath":"output.csv","delimiter":"\\t"}'
  1. فایل CSV حاصل را دانلود کنید.
curl -X GET "https://api.aspose.cloud/v3.0/storage/file/output.csv" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.csv

برای قرارداد دقیق API، به مستندات رسمی API مراجعه کنید.

آماده‌سازی محیط برای Aspose.BarCode Cloud PHP

  1. نصب کتابخانه با استفاده از Composer:

    composer require aspose/barcode-cloud-php
    
  2. دانلود آخرین نسخه اگر ترجیح می‌دهید نصب دستی انجام دهید:
    https://releases.aspose.cloud/barcode/php/

  3. پیش‌نیازها: PHP 7.4 یا بالاتر، یک حساب کاربری معتبر Aspose Cloud، و اعتبارهای کلاینت (AppSid و AppKey).

  4. پیکربندی بارگذاری خودکار (به‌صورت خودکار توسط Composer انجام می‌شود.) هیچ گام اضافی‌ای لازم نیست.

قابلیت‌های Aspose.BarCode Cloud PHP که برای تبدیل TXT به CSV مهم هستند

  • پردازش ابری با عملکرد بالا - تمام عملیات بارکد بر روی سرورهای Aspose اجرا می‌شوند و زمان اجرا PHP شما را از کار سنگین پردازنده آزاد می‌کنند.
  • پشتیبانی گسترده از نمادها - بیش از 150 نوع بارکد، که وقتی نیاز به درج بارکدها در خروجی CSV برای اسکن‌های بعدی دارید، مفید است.
  • یکپارچه‌سازی ایمن با ذخیره‌سازی ابری - به‌صورت مستقیم از ذخیره‌سازی ابری Aspose بخوانید و در آن بنویسید، که مدیریت فایل‌ها برای مجموعه‌داده‌های بزرگ را ساده می‌کند.
  • API جامع REST - امکان فراخوانی‌های مستقل از زبان را فراهم می‌کند، همان‌طور که در بخش cURL نشان داده شده است.
  • مستندات دقیق - راهنماها و مطالب مرجع کامل در سایت مستندات موجود هستند.

پیکربندی گزینه‌های تبدیل برای پردازش TXT در PHP خالص

می‌توانید رفتار تبدیل را با تنظیم چند متغیر تغییر دهید:

  • جداکننده - مقدار $txtDelimiter را طوری تغییر دهید که با فایل منبع شما (کاما، لوله و غیره) مطابقت داشته باشد.

    $txtDelimiter = ",";
    
  • رمزگذاری - اگر فایل TXT شما از مجموعه کاراکتر متفاوتی استفاده می‌کند، از mb_convert_encoding استفاده کنید.

    $line = mb_convert_encoding($line, 'UTF-8', 'ISO-8859-1');
    
  • CSV Enclosure - برای کنترل نقل‌قول، پارامترهای اضافی را به fputcsv پاس دهید.

    fputcsv($csvHandle, $fields, $delimiter = ',', $enclosure = '"');
    
  • مدیریت خطا - عملیات فایل را در بلوک‌های try‑catch بپیچید تا استثناهای I/O را ضبط کنید.

برای دریافت فهرست کامل ویژگی‌های پیکربندی، به مرجع API مراجعه کنید.

نتیجه‌گیری

تبدیل TXT به CSV بدون ابزارهای خارجی در PHP به‌صورت ساده‌ای انجام می‌شود هنگامی که از Aspose.BarCode Cloud SDK for PHP استفاده کنید. با استفاده از SplFileObject مصرف حافظه را به حداقل می‌رسانید و ویژگی‌های بارکد مبتنی بر ابر SDK به شما امکان می‌دهند خروجی CSV خود را در صورت نیاز غنی‌سازی کنید. مثال کد ارائه‌شده و جریان کاری cURL دو روش انعطاف‌پذیر برای ادغام این قابلیت در هر برنامه PHP به شما می‌دهند. به‌خاطر داشته باشید که برای استفاده در محیط تولید یک لایسنس مناسب دریافت کنید؛ جزئیات قیمت‌گذاری در صفحه محصول موجود است و می‌توانید یک لایسنس موقت را از صفحه لایسنس موقت درخواست کنید. امروز شروع به ادغام کنید و با اطمینان مسیرهای داده‌ای خود را بهینه‌سازی کنید.

سوالات متداول

  • چگونه می‌توانم تبدیل TXT به CSV را بدون ابزارهای خارجی در PHP با استفاده از Aspose.BarCode Cloud SDK پیاده‌سازی کنم؟
    راهنمای گام به گام بالا را دنبال کنید: SDK را نصب کنید، اعتبارنامه‌ها را پیکربندی کنید، فایل TXT را با SplFileObject بخوانید، هر خط را با استفاده از جداکننده خود تقسیم کنید، و ردیف‌ها را با fputcsv بنویسید. کد کامل در بخش مثال کد کامل ارائه شده است.

  • آیا می‌توانم جداکننده را برای فرمت‌های مختلف TXT تغییر دهم؟
    بله. متغیر $txtDelimiter را در اسکریپت تغییر دهید تا با کاراکتری که فیلدها را در فایل منبع شما جدا می‌کند مطابقت داشته باشد (مثلاً "," برای کاما یا "|" برای لوله).

  • اگر فایل TXT من شامل کاراکترهای یونیکد باشد چه؟
    اطمینان حاصل کنید که فایل به صورت UTF‑8 ذخیره شده است. اگر نیاز به تبدیل از رمزگذاری دیگری دارید، از mb_convert_encoding برای هر خط قبل از تقسیم آن استفاده کنید.

  • آیا برای تبدیل TXT به CSV نیاز به مرحله تولید بارکد است؟
    نه، تولید بارکد اختیاری است و فقط نشان می‌دهد که چگونه می‌توان از همان SDK برای کارهای اضافی استفاده کرد. اگر فقط به خروجی CSV نیاز دارید می‌توانید بخش بارکد را حذف کنید.

Read More