انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: rahmani در 20 امرداد 1392، 10:18 ب‌ظ

عنوان: چگونه یک file با قالب html را اعتبار سنجی کنیم؟
ارسال شده توسط: rahmani در 20 امرداد 1392، 10:18 ب‌ظ
سلام
یک برنامه php دارم که اطلاعات چندتا file با قالب html را پردازش میکند. برای نمونه یک  file کوچک ( در حد کیلو بایت) را امتحان کردم. درست کار میکند اما فایلهای اصلی با همان format که حجمشان حدود ۲ تا ۳ مگا بایت هست را پردازش نمی کند.

از آنجا که حجم اصلی file های اصلی خیلی زیاد هست توان و فرصت این کار را ندارم که همه آنها را بررسی کنم. ممکن است خطا بخاطر حجم بالای file باشد?????
$html = file_get_html('file.html');

foreach ( $html->find('line') as $value ) {
}
وقتی می خواهد file اصلی را پردازش کند خطای زیر را می دهد.
Fatal error: Call to a member function find() on a non-object...این نمونه از متن فایل است:

<line><isbn>072160241X</isbn><isbn>9780721602417</isbn></line>
<line><isbn>1859962505</isbn><isbn>9781859962503</isbn><isbn>9780585400693</isbn></line>
<line><isbn>0470848723</isbn><isbn>9780470848722</isbn><isbn>9780470094099</isbn></line>
<line><isbn>9780060765316</isbn><isbn>0060765313</isbn></line>
عنوان: پاسخ : ممکن است برنامه ای بخاطر حجم بالای file آن را پردازش نکند??
ارسال شده توسط: MrGee در 20 امرداد 1392، 10:47 ب‌ظ
من حدس می زنم مشکل از فایل اصلی باشه و تگهای htmlش یه جا مشکل داره.
با برنامه ها یا سرویس های html validator چک کنید ببینید فایل اصلی سالمه یا نه.
عنوان: پاسخ : ممکن است برنامه ای بخاطر حجم بالای file آن را پردازش نکند??
ارسال شده توسط: Matrix.1372 در 20 امرداد 1392، 11:30 ب‌ظ
همچنین مقدار memory_limit رو تو فایل تنظیمات php افزایش بدید مثلا ۵۱۲ مگابایت که میشه 512M
برای ویرایش:
sudo nano /etc/php5/apache2/php.iniفایل رو با ctrl+o ذخیره کنید و:
sudo service apache2 restart
عنوان: پاسخ : ممکن است برنامه ای بخاطر حجم بالای file آن را پردازش نکند??
ارسال شده توسط: rahmani در 20 امرداد 1392، 11:38 ب‌ظ
من حدس می زنم مشکل از فایل اصلی باشه و تگهای htmlش یه جا مشکل داره.
با برنامه ها یا سرویس های html validator چک کنید ببینید فایل اصلی سالمه یا نه.

ممنون

ممکن هست یک نمونه کوچک و ساده مثال بزنید؟

توی لینوکس چه برنامه هایی برای این کار هست؟ توی چند سایت html validator  تلاش کردم جواب نگرفتم

ممنون
عنوان: پاسخ : ممکن است برنامه ای بخاطر حجم بالای file آن را پردازش نکند??
ارسال شده توسط: MrGee در 21 امرداد 1392، 12:03 ق‌ظ
تو لینوکس نمی دونم چه برنامه هایی هست ولی با php باید بشه این کارو کرد کافیه تابع مورد نظر رو سرچ کنید.
البته فکر کنم با خود مرورگر هم میشه این کارو کرد کافیه بعد لود کردن فایل تو قسمت developer tools دنبال console یا همچین چیزی بگردید، اونجا اصولا باید خطای های فایل رو نوشته باشه. در کل اگه با همین developer tools ور برید فکر کنم به نتیجه برسید. اگه نشد هم حتما افزونه ای برای این کار هست.
عنوان: پاسخ : ممکن است برنامه ای بخاطر حجم بالای file آن را پردازش نکند??
ارسال شده توسط: nixoeen در 21 امرداد 1392، 02:02 ق‌ظ
توی تنظیمات PHP بزنید که تمامی Errorها و Warningها رو نشون بده و بهتون نشون می‌ده چرا درست کار نمی‌کنه.
عنوان: پاسخ : چگونه یک file با قالب html را پردازش کنیم
ارسال شده توسط: rahmani در 21 امرداد 1392، 10:24 ق‌ظ
سلام

خب من هم این خط ها
display_errors = On
error_reporting = E_ALL
را فعال کردم یعنی semicolon را در php.ini برداشتم. که اخطارهای زیادی هم نمایش داد. اما اکنون وقتی این دستورها را مینویسم که file را می گیرد و میخواهد آن را پردازش کند
$path = 'isbn.html';
$html = file_get_html($path);

foreach ( $html->find('line') as $value ) {
....}
فقط میگوید:
Fatal error: Call to a member function find() on a non-object
عنوان: پاسخ : چگونه یک file با قالب html را اعتبار سنجی کنیم؟
ارسال شده توسط: nixoeen در 27 امرداد 1392، 04:36 ق‌ظ
فایلی که دارید رو یک جایی آپلود کنید و من می‌تونم تستش کنم ببینم مشکل چیه.