PDA

View Full Version : decode یک فایل مشابه با فایل جیسون



mehran6764
دوشنبه 05 شهریور 1397, 13:03 عصر
سلام ، فایلی که تو این پست ضمیمه شده یه فایل با پسوند جاوا اسکریپت ِ و ساختارش تا حدودی مشابه فایلهای جیسونه اما من نتونستم decode اش کنم .. مواردی که برای راهنمایی نیاز دارم :اول : برام سواله محتویات این فایل چیه ؟ آرایه جاوا اسکریپت ؟ جیسون یا .. دوم : چطوری با Php می تونم به اندیس هاش دسترسی داشته باشم ؟پیشاپیش از توجه و راهنمایی استادان و سروران گرامی ممنونم

plague
سه شنبه 06 شهریور 1397, 10:32 صبح
شما میتونی آرایه رو از php به js پاس بدی (با تبدیل به رشته جیسون و اکو کردنش تو یه متغیر js)


<script> var js_array = JSON.parse('<?php echo json_encode($php_array); ?>'); </script>

ولی برعکسش نمیشه (حداقل در یک اجرا / رکوئست نمیشه ) چون کدای php اول توی سرور اجر میشن و کد های js بعدا تو مرگر کاربر اجر میشن و از اونجایی که نمیشه به گزشته سفر کرد نمیشه از js به php پاس داد !

البته به راه حل داره که از ajax استفاده کنی یعنی وقتی صفحه لود شد آرایه رو به جیسون تبدیل کنی بعد با ایجکس دوباره بفرستیش به اسکریپت php یا ینکه روش ساده تر بخای یه فرم بسازی و آرایه رو جیسون کنی بریزی توی یک فیلد و بعد فرم رو ثبت کنی تا بفرستتش برای php


ساختار های پیچیده مثل آرایه در زبان های مختلف برنامه نویسی ساختمانشون با هم فرق میکنه در نتیجه شما نمیتونی یک آرایه رو از یک زبان پاس بدی به زبان دیگه
ولی همشون میتون آرایه رو تبدیل به جیسون کنن و برعکس
و از ونجایی که جیسون یک رشته ساده هست قابل انتقاله از یک زبان به زبان دیگه

در مورد فایلت هم من فایل دانلود نمیکنم اگه کدش رو اینجا بزاری نگاش میتونم بکنم
ولی ساختار جیسون با الهام گرفتن از شکل آرایه اندیس دار (آّبجکت) در js ساخته شده برای همین خیلی شبیه به هم هستن

mehran6764
سه شنبه 06 شهریور 1397, 10:57 صبح
ممنون از توجه و راهنمایی شما ، متاسفانه به دلیل طولانی بودن خطوط محتویات فایل نمیشه داخل ادیتور کپی کرد ( انجام دادم و پست ارسال نشد )
نمی دونم کمکی بکنه یا نه ولی یه تیکه از شروع فایلو اینجا کپی می کنم . اگه بتونم اینو به صورت آرایه Php در بیارم کمک بزرگی میشه برام



window.products = {ipcameras:{"NBE4502AL":{"ctnclass":"NBE4502AL","name":"DINION IP 4000i IR","image":"..\/imagecache\/a87a2cbaa4c91efb36f5505fae324865_w400_h500_sc.jpg","datasheet":"http:\/\/resource.boschsecurity.com\/documents\/DINION_IP_4000i_Data_sheet_enUS_33404289163.pdf","producttype":"IP Cameras","category":"Fixed IP Cameras","family":"4000","max_resolution":"HD 1080p","4kultrahd":"No","sensor_size":"1\/2.8\"","max_fps":"30@1080p","indoor_outdoor":"Outdoor","day_night":"Day\/Night","wide_dynamic_range":"85dB","onvif":"Yes","microphone":"No","poe":"Yes","compression":"H.265, H.264, MJPEG","multi_streaming":"4 streams","idnr":"Yes","iae":"No","privacy_masks":"Yes","eptz":"No","interest_tracking":"No","nr_presets":"No","wiper":"No","thermal":"No","tamper_detection":"Yes","motionplus":"Yes","iva":"EVA","audio_alarm":"Yes","face_detection":"No","intelligent_tracking":"No","slide_color":"0.052","slide_black_and_white":"0.008","starlight":"No","slide_integrated_ir":"60","optional_ir":"No","abf":"No","varifocal":"Yes","auto_varifocal":"Yes","super_resolution_lens":"No","slide_focal_length":"2.8","slide_focal_till":"12","min_angle_h":"33","min_angle_v":"19","max_angle_h":"100","max_angle_v":"52","slide_optical_zoom":"","ptz_zoom_digital":"","tilt_angle":"90 to 0","dcri_detection":"","dcri_clasification":"","dcri_recognition":"

plague
سه شنبه 06 شهریور 1397, 12:05 عصر
همون اولش کافیه
این آبجکت هستش ... اگه بخام عامیانه و نه چندان صحیح بگم یه آرایه کلید دار هستش
من نمیدونم دقیق میخای چیکار کنی برای همین راهنمایی من شاید عملی نباشه
ولی همونجوری که گفتم یه فرم html بساز این آرایه رو جیسون کن و بریز توی فیلد
بعد فرم رو ثبت کن میره بره برای سکریپت php
اون جیسون دیکد کن تبدیل میشه به آرایه

mehran6764
چهارشنبه 07 شهریور 1397, 09:16 صبح
آقا خیلی ممنون بابت وقت و راهنمایی ، اما واقعیتش نتونستم اصل مطلب رو بگیرم d: ، فکر می کنم تقصیر خودمه کامل توضیح ندادم

این فایل پایینی


http://www.videoselector.boschsecurity.com/js/products.js


مربوط به محصولات سایت BOSCH هست یعنی محصولاتی که تو این لینک (http://www.videoselector.boschsecurity.com/index.php?p=ipcameras)هست
من میخواستم از سورس HTML اون محصولاتو با مشخصاتش بخونم و به سایت خودم اضافه کنم چون دستی کپی کردنش
هم سخته هم دقت بالایی میخواد ..تا اینکه متوجه شدم محصولات از فایل اون جاوا اسکریپت لود میشه ولی از ساختارش
سر در نمیارم .. هر چی سرچ کردم آرایه ای مشابه این تو جاوا اسکریپت پیدا نکردم که با توجه به اون مثال اینو تبدیل کنم
به جیسون ! دقیقا نمی دونم چطوری به جیسون تبدیل میشه

plague
پنج شنبه 08 شهریور 1397, 11:57 صبح
محتویات اون صفحه رو کپی کن بزار تو یک تگ script توی سیستم خودت
بعد تبدیلش کن به جیسون اون متغیر window.product رو
بعد بریزش توی یک فیلد یا تکست آریا

var jproduc = JSON.stringify(window.products);
document.getElementById('textarea-id').value = jproduc ;


بعد فرم رو ثبت کن میره برای اسکریپت php اونجا بگیر دیکدش کن میشه یه آرایه


$array = json_decode($_REQUEST['textarea']);

ممکنه جایی اشکال تایپی داشته باشم خودت دقت کن

zeynabghasempoor
پنج شنبه 20 تیر 1398, 12:06 عصر
سلام
من کدم این هستش
من ارایه ام رو در php به رشته ی جیسون تبدبل کردم(یعنی همین متغیر(emparray$))
الان واسه خوندن این رشته جیسون نو جاوا اسکریپت مشکل دارم
ینی اون قسمت اسکریپت پایین....
ممنون می شم کمکم کنین....


script> var js_array = JSON.parse('<?php echo json_encode($emparray); ?>')>
document.write(js_array )


<script/>