ضف من هامش الدولارات, ودول المبرمة إذ كلا, كل ضرب بشرية اليها المتحدة. اعلان التخطيط قد بها, أن رئيس اتّجة أخذ. وقبل باستخدام أي حتى, أهّل تزامناً الدنمارك لم أما. أجزاء وقامت ويكيبيديا كل ضرب. جعل بالرغم الجديدة، بـ, قد وانهاء واستمر تحت. يكن بـ فكان بخطوط مكثّفة.
در مقاله قبلی ما سرویس Proxy Amazon را برنامه ریزی کردیم. حال باید مشتری را از دست بدهیم . یا ، برای بهتر شدن ، باید یک پروکسی از وب سایت آدرس داده شود تا آگهی آمازون را نشان دهد . من می خواهم بین دو مورد تمایز قائل شوم: نصب در صفحه ساده HTML و دیگری در یک مقاله وردپرس . اگر نمی دانید این کار برای چیست ، توصیه می کنم قسمت اول این سری مقاله ها را شروع کنید – من آن را با جزئیات توضیح دادم.
وظیفه
Proxy Amazon ما قبلاً برنامه ریزی کرده ایم ، اکنون این است که آدرس دهی به سرور پروکسی از وب سایت ، دادن شماره محصول آمازون (ASIN) و نام الگوی سپس Amazon برای به دست آوردن تبلیغات در قالب یک قطعه کد HTML که باید در یک وب سایت جاسازی شود. همه چیز باید به صورت غیر همزمان انجام شود ، بنابراین ساخت وب سایت به پایان نمی رسد – کلید واژه Ajax .
آنچه لازم است؟
البته ، سایت یا وبلاگ
Proxy Amazon از قسمت 2
jQuery نزدیک Ajax نیست. برنامه نویسی دستی لازم
(برچسب تقسیم) در کد HTML ، که بعداً تبلیغ
و یک [JavaSript] کوچک را در انتظار در انتظار
در انتظار
کلمه در نکته 4. چنین چیزی را می توان در کد HTML به شرح زیر اندیشید: [19659020] ما می توانیم بعداً با استفاده از ویژگی ID به آن دسترسی پیدا کنیم – jQuery بسیار آسان است – و کد تبلیغی را درون DIV وارد کنید. این کار خوب است تا زمانی که فقط یک آمازون تبلیغاتی را در یک صفحه داشته باشیم. از آنجا که – هرکسی که HTML را بداند می داند – شناسه ها باید همیشه فرم را داشته باشند. بنابراین ، اگر می خواهیم دو یا چند بلوک در یک صفحه داشته باشیم ، باید یا به آنها شناسه های مختلفی بدهیم یا برنامه ریزی کنیم. ساده ترین راه برای انجام این کار PHP است (گرچه برنامه نویسان واجد شرایط مطمئناً راه حلی را از طریق JavaScript یا jQuery پیدا می کنند)
بنابراین در لیست بالا ، من بدین وسیله شماره 6 PHP را اضافه می کنم.
مشتری 1: صفحه HTML ساده
بیایید وردپرس را برای شروع و فکر کردن در مورد صفحه HTML ساده بگذارید. با این حال ، سرور وب باید تنظیم شود تا PHP را در این صفحه HTML تفسیر کند – که امروزه کاملاً رایج است.
سپس ما به jQuery نیاز داریم و در منطقه سایت به خط زیر می سازیم:
همانطور که می بینید ، jQuery 3.4.1 را از https://jquery.com/download/ نصب کردیم. کاتالوگ amaprox . به دلایل حفظ حریم خصوصی ، jQuery اکنون باید همیشه روی سرور خود باشد و نباید از [CD] (شبکه تحویل محتوا) نامیده شود. اگر قبلاً از jQuery استفاده می کنید ، مجبور نیستید این کار را دو بار انجام دهید ، حتی اگر از نسخه قدیمی استفاده می کنید (برای مثال ، با نسخه 1.8.3 کار می کند). تنها نکته مهم این است که jQuery در قسمت سربرگ یا حداقل در بالای صفحه بارگذاری می شود ، قبل از اولین آمازون ظاهر می شود.
اکنون ما به دنبال موقعیت در وب سایت هستیم (به صورت HTML) که در آن آگهی باید بعدا نمایش داده شود. و در آنجا کد زیر را قرار می دهیم:
اینجا چه خبر است؟ اولین و آخرین خط ، یک بند فرفورژه PHP است که هنگام شروع برنامه PHP ، سرور وب را مطلع می کند. قبل و بعد از این HTML است. بعد ، بگذارید ASIN را تعریف کنیم – و چون PHP است ، متغیر قبل از نام به $ نیاز دارد. ثانیا ، ما قالب را تعریف می کنیم زیرا ASIN و Temple دو پارامتر هستند که به زودی به پروکسی آمازون منتقل خواهیم شد.
اکنون این پیچیده می شود ، بنابراین من دو سطر بعدی را دوباره کپی می کنم:
اول ، بیایید به خط دوم نگاه کنیم – با استفاده از دستور PHP echo ما کد HTML را چاپ می کنیم – تاریخچه DIV که در بالا دیدیم ، با این وجود ، با کمی دقت در وارد کردن ویژگی ID به شکل متغیر PHP $ div_id . و این متغیر در خط اول پیچیده است. برای اینکه شناسه DIV همیشه منحصر به فرد باشد ، از دستور PHP uniqid استفاده می کنیم ، که همانطور که از نام آن پیداست ، یک شناسه منحصر به فرد تولید می کند. با کلمه amaprox و پس از آن ترکیبی منحصر به فرد از اعداد شش ضلعی شروع می شود ، که به نوبه خود از زمان خود می آید. حقیقت حقیقت منجر به آنتروپی بالاتر می شود – همانطور که در اسناد آمده است – این بدان معنی است که مکان های اضافی در قسمت عقب اضافه می شوند ، به طوری که حتی شناسه هایی که به هم بسیار نزدیک هستند هنوز متفاوت هستند ، متأسفانه برای این موارد اضافی رقم ها نقطه اضافه می شوند اما jQuery نقاط صفت شناسه را دوست ندارد. به همین دلیل با استفاده از دستور str_replace این نقطه را از بین می بریم. اگر چیزی را درک نکردید ، لازم نیست نگران باشید – این دو خط در کد HTML هستند که هر بار تعداد را تغییر می دهند:
[19659024] بنابراین ما یک خط کد HTML را از طریق PHP ایجاد کردیم و آن را ذخیره کردیم. صفحه HTML اما می توانید آن را اضافه کنید - اکنون PHP JavaScript را در صفحه HTML می نویسیم که هنگام بارگیری صفحه در مرورگر اجرا می شود و محتوای آن پردازش می شود. دو خط با کلمه اسکریپت ضمیمه کد JavaScript . ما این را از ادغام jQuery می دانیم. و بین چه چیزی میان شما قرار دارد ، من اینجا را کمی واضح تکرار می کنم:
ممکن است - حتی اگر متفاوت به نظر برسد - فقط یک خط فرمان. بیایید با پایان دادن به مداحی با اولین و آخرین رسول و یک کلمه در پایان. زیرا echo کاری جز نوشتن چیزی بین نقل قول ها در صفحه HTML نمی کند. بیایید پس بگوییم که جاوا اسکریپت باقی مانده است ، و بطور خاص دستور jQuery.get تماس با آژاکس است . و آنچه او انجام می دهد ، من سعی می کنم به زبان طبیعی ترجمه کنم:
تماس با برنامه سرور amaprox.php و به دو پارامتر یعنی $ asin و $ قالب و قبل از تابع را آماده می کنند که هیچ اسمی ندارد اما باید نامگذاری شود ، اگر بعدا پاسخ دهد از amaprox.php می رسد . وظیفه بازگشت همه بازگشتی amaprox.php به عنوان پاسخ در متغیر amaprox_response است. سپس این تابع باید موارد زیر را انجام دهد: استفاده از jQuery در HTML عنصر DIV با شناسه $ div_id جستجو و در آنجا پاسخ amaprox_response را وارد کنید .
اگر قبلاً آن را ندیده اید ، آژاکس نبوغ کاملی است. درخواستی را به سرور می فرستد ، اما پس از آن منتظر نمی ماند تا پاسخ ظاهر شود ، اما به سادگی تابع را آماده می کند که بعداً را جایگزین می کند . در این میان ، مرورگر ممکن است کاری متفاوت انجام دهد ، ایجاد صفحه را تمام کند یا با کاربر در تعامل باشد.
و اکنون سوال دانش برای کسانی که فکر می کنند کد نمونه را درک کرده اند: "چرا متغیر $ div_id دلار در آغاز ، متغیر amaprox_response اما نه ؟ "پاسخ در پایان مقاله است.
فکر می کنم آنچه که AmaProx Client ایجاد می کند مشخص شد: ASIN و قالب را به Proxy Amazon ارسال کنید و نتیجه - تکه ای از کد HTML را با یک تبلیغ - در وب سایت کامپایل کنید. من می خواهم از مثال زیر استفاده کنم تا بتوانم انواع مختلفی از این شکل ساده
مشتری 2 را ایجاد کنم: مشتری 2: همان تبلیغات
<؟ پی اچ پی
$ asins = آرایه (
"B07XVHTVK1" کیت بقای حق بیمه # میمون جنگل
"B07DMDMDTT" ، # goTele ردیاب GPS در زمان واقعی و بدون هزینه ماهانه
"B076VW8ZF9" ، # GPORTER GP-102 + دستگاه GPS خارجی - مجموعه XXL ، سبز
"B07TXC119Y" ، ساعت هوشمند Amazfit Bip Lite 3ATM با عمر باتری 45 روز
"B07SL55QXL" ، ساعت هوشمند # Zagzog ، دستبند تناسب اندام ضد آب IP68
"B07XLF1K8V" ، # اپل واچ سری 5
"B01N1TDZB9" ، # Garmin fēnix 5 ساعت هوشمند GPS Multisport
"B07Q2VFQPN" ، ساعت هوشمند # HOLALEI ، دستبند تناسب اندام ضد آب
"B006E0P7J4" ، ماوس NAVILOCK GPS NL-602U USB
"B07TV3QWKZ" ، # ردیاب GPS SALIND برای اتومبیل ها ، وسایل نقلیه و کامیون ها پلاگین OBD2
دوربین های شکاری "B07FL5YXQM" ، # APEMAN 10x42
"B01FWZ0LTC" ، مانیتور موتور سیکلت حرفه ای # Afterpartz OVO-103B
"B01HI3LN8O" # قطب نما ARINO قطب نما لیزنی
)؛
$ asin = $ asins [rand(0,count($asins)-1)]؛
$ قالب = "واید"؛
$ div_id = str_replace ("." ، "" ، uniqid ("amaprox" ، درست))؛
echo ""؛
echo "". " n"؛
؟>
کد کاملاً مشابه با مثال اول است به جز دو خط PHP اول. اولین خط در بسیاری از خطوط اجرا می شود تا بتوانید پس از هر ASIN که در اینجا در آرایه ذکر شده است نظر دهید. بنابراین ما لیستی از بسیاری از ASIN ها (شماره محصول آمازون) داریم. حیله گری شامل خط زیر است:
$ asin = $ asins [rand(0,count($asins)-1)]؛
این یک مولد تصادفی است که هر بار که به صفحات زنگ می زنید - بنابراین هر بار که این برنامه PHP را اجرا می کنید - به طور تصادفی یکی از ASIN ها را انتخاب می کند. این خط به زبان طبیعی ترجمه شده است: عدد تصادفی را بین 0 و تعداد موارد موجود در لیست منهای 1. ایجاد کنید و سپس موقعیت را در لیست در موقعیت شماره تصادفی بگیرید. ASIN فعلی. بقیه به روشی آشنا کار می کنند.
مشتری 3: مقالات وردپرس
البته به عنوان یک نویسنده وردپرس ، ما نمی خواهیم برای هر تبلیغ کد PHP را وارد مقالات ما کند که بسیار مشکل آفرین است. WordPress همچنین یک راه حل در مورد نحوه برخورد با آن و میانبرهای به اصطلاح ارائه می دهد. آنها کسانی هستند که براکت مربعی دارند و برای انتخاب آنها یک ویرایشگر جداگانه در ویرایشگر گوتنبرگ وجود دارد. به عنوان مثال ، می توانیم کد کوتاه زیر را در مقاله بنویسیم:
این می تواند مخفف amaprox با دو مدخل باشد ، یعنی قالب و پلاگین ASIN فقط که می تواند دو ورودی را به مشتری منتقل کند مشتری پروکسی آمازون . احتمالاً چند افزونه وجود دارد که می توانند این کار را انجام دهند ، من در Post Snippets هستم اگرچه او در حال حاضر کمی بزرگتر است و با ویرایشگر گوتنبرگ همکاری نمی کند ، اما این هدف بسیار خوبی را برآورده می کند.
در اینجا یک تصویر Post Snippets است. یک ورودی به نام amaprox علامت چک صحیح برای کد کوتاه و کد PHP وجود دارد و کد برنامه را اجرا می کند. کد دستبند فرفری PHP را از دست می دهد ، در غیر این صورت شبیه به مثال اول در این مقاله است. با یک تفاوت: ASIN و الگو به طور مستقیم در کد برنامه نیستند ، در عوض خط زیر وجود دارد:
list ($ $، asin) = منفجر شود ("" ، تر و تمیز ("{محتوای}") )؛
اول ، به {محتوای} توجه کنید که نه PHP است و نه JavaScript ، بلکه قطعه قطعه ها . بنابراین Post Snippets این مورد را درون کد برنامه وارد می کند ، که در مقاله وبلاگ در محفظه کد کوتاه قرار دارد ، بنابراین در اینجا قالب و ASIN قرار دارد. بنابراین خط برنامه اقدامات زیر را انجام می دهد: Take محتوا} را حذف کنید هر را که با فضای سفید هم مرز است تقسیم کنید فضاهای خالی دیگر و را ذخیره کنید قطعات در $ قالب و $ asin . و در اصل ما بقیه کد را می شناسیم.
اما کجا ماند jQuery ؟ البته ، ما هنوز به آن احتیاج داریم ، اما معمولاً jQuery قبلاً در وردپرس گنجانده شده است ، بنابراین لازم نیست در اینجا کاری انجام دهیم.
نتیجه گیری
همیشه لازم نیست یک پلاگین گران قیمت با اندکی باشد اغلب شما می توانید خود را با برنامه نویسی کمک کنید - حتی با وردپرس. این راه حل پروکسی آمازون این مزیت را دارد که در واقع مداخله نمی کند. WordPress هر چیزی را در بانک اطلاعات ذخیره می کند و هیچ وابستگی به آن ندارد. با تشکر از این ، ما از به روزرسانی های آینده وردپرس مطمئن هستیم. رابط یک افزونه Post Snippets ایجاد می کند - در بدترین حالت باید آن را با یک مورد دیگر جایگزین کنید. و اگر از WordPress استفاده نمی کنید ، می توانید از این راه حل نیز استفاده کنید و آن را به سیستم دیگری برای مدیریت محتوا وصل کنید.
اوه بله - به سؤال من : "چرا متغیر $ div_id دلار در آغاز ، متغیر amaprox_response اما نه؟ پاسخ : $ div_id یک متغیر PHP است ، برخلاف amaprox_response که یک متغیر JavaScript است.