در مقاله قبلی ما [ سرویس پروکسی آمازون را برنامه ریزی کردیم. حال باید مشتری را از دست بدهیم. یا برای بهتر بگویید ، باید پروکسی را از یک صفحه وب برای نمایش تبلیغات آمازون نشان داد. من می خواهم بین دو مورد تمایز قائل شوم: نصب در Html- صفحه ساده و مورد دوم در مقاله WordPress . اگر نمی دانید چه چیز خوبی است ، توصیه می کنم قسمت اول این مجموعه مقاله را شروع کنید – من آن را با جزئیات توضیح دادم.
وظیفه
پروکسی آمازون ما قبلاً برنامه نویسی کرده ایم ، اکنون می توان به آدرس اینترنتی پروکسی از طریق صفحه وب ، دادن شماره محصول آمازون (ASIN) و یک الگوی ، و سپس Amazon اشاره کرد. برای دریافت تبلیغات به شکل قطعه کد HTML که باید در صفحه وب ساخته شود. کل این مسئله باید به صورت ناهمزمان اتفاق بیفتد ، بنابراین ساخت وب سایت متوقف نمی شود – کلید واژه Ajax .
چه چیزی لازم است؟
البته ، یک سایت یا یک وبلاگ
Proxy Amazon از قسمت 2
jQuery نیست داشتن برنامه به صورت دستی
A جایگاه (div-tag) در کد HTML که بعداً برای دریافت آگهی
و اندکی JavaSript در دست اقدام است
کلمه ای در مورد 4. چنین مکان یابی در کد HTML به شرح زیر است:
ما می توانیم بعداً از طریق ویژگی شناسه به آن دسترسی پیدا کنیم – jQuery عالی است آسان – و کد تبلیغاتی را در DIV وارد کنید. این کار تا زمانی که فقط آگهی آمازون را در یک صفحه داشته باشیم خوب است. زیرا – هرکسی که HTML را بداند می داند – شناسه ها باید همیشه باشند. بنابراین ، اگر می خواهیم دو یا چند بلوک در یک صفحه داشته باشیم ، یا باید آنها را به شناسه های مختلف بدهیم ، یا آنرا برنامه ریزی می کنیم. و ساده ترین راه برای انجام این کار توسط PHP (اگرچه برنامه نویسان ماهر مطمئناً یک راه حل از طریق جاوا اسکریپت یا jQuery پیدا می کنند)
بنابراین در لیست بالا به این ترتیب شماره 6 PHP را اضافه می کنم.
مشتری 1: صفحه HTML ساده
بیایید وردپرس را برای مبتدیان کنار بگذاریم و به یک صفحه HTML ساده فکر کنیم. با این حال ، سرور وب باید تنظیم شود تا PHP را در این صفحه HTML تفسیر کند – که امروزه کاملاً رایج است.
سپس ما به jQuery نیاز داریم و ساختیم. به خط زیر در قسمت صفحه:
همانطور که مشاهده می کنید من jQuery 3.4.1 را از https://jquery.com/download/ بارگیری کردم و آنرا در فهرست amaprox قرار دادم. به دلایل حفظ حریم خصوصی ، jQuery اکنون باید همیشه روی سرور خود باشد ، و نباید از [CD] (شبکه تحویل محتوا) نامیده شود . اگر قبلاً از جی کوئری استفاده می کنید ، حتی اگر از نسخه قدیمی استفاده می کنید (به عنوان مثال با نسخه 1.8.3 کار می کند) لازم نیست دو بار آن را انجام دهید. تنها نکته مهم این است که jQuery در ناحیه سر یا حداقل در بالای صفحه بارگیری می شود ، قبل از اولین آمازون وارد می شود.
اکنون ما می خواهیم موقعیت را در صفحه وب (در کد HTML) جستجو کنیم. که در آن آگهی باید بعداً نمایش داده شود. و در آنجا کد زیر را قرار می دهیم:
چه اتفاقی می افتد؟ اولین و آخرین خط براکت PHP است که به سرور وب می گوید که یک برنامه PHP را اجرا کند. قبل و بعد از آن HTML است. سپس بیایید ASIN را تعریف کنیم – و چون این PHP است ، متغیر نیاز به یک دلار در مقابل نام دارد. دوم ، ما یک الگوی را تعریف می کنیم ، زیرا ASIN و Temple دو پارامتری هستند که به زودی به پروکسی آمازون منتقل خواهیم کرد.
اکنون پیچیده است ، بنابراین من دو سطر بعدی را دوباره کپی می کنم. خارج:
ابتدا بیایید به خط دوم نگاه کنیم – با دستور PHP echo ، ما یک کد HTML تولید می کنیم – همان داستان DIV که در بالا دیده ایم. ، با این حال ، با کمی ظرافت که ویژگی ID در قالب متغیر PHP $ div_id درج شده است. و دقیقاً این متغیر به سختی در خط اول قرار می گیرد. برای اینکه همیشه DIV ID بی نظیر باشد ، در اینجا از دستور PHP uniqid استفاده می کنیم که همانطور که از نام آن پیداست یک شناسه منحصر به فرد تولید می کند. این با کلمه amaprox آغاز می شود ، و پس از آن ترکیبی منحصر به فرد با تعداد هگزا ، که به نوبه خود از زمان مشتق شده است. درست منجر به آنتروپی بالاتر – همانطور که در اسناد می گوید – این بدان معنی است که مکان های اضافی در پشت اضافه می شوند ، به طوری که حتی شناسه هایی که به موقع بسیار نزدیک به یکدیگر هستند هنوز متفاوت هستند. ، متأسفانه ، این رقم های اضافی با نقطه ضمیمه شده اند ، اما jQuery نقاط صفت شناسه را دوست ندارد. بنابراین ما فقط با دستور str_replace حذف می کنیم. اگر دیگر چیزی نفهمید ، نیازی به نگرانی ندارید – آنچه این دو خط در کد HTML می نویسند اینگونه به نظر می رسد که هر بار اعداد در حال تغییر است:
[19659024] بنابراین ما یک خط کد HTML را از طریق PHP جمع کرده ایم و آن را در صفحه HTML نوشتیم. اما این می تواند در صدر باشد - اکنون ما در حال نوشتن PHP JavaScript در صفحه HTML هستیم که با بارگیری صفحه در مرورگر و اجرای محتویات آن اجرا می شود. با کلمه متن چسبیده به کد جاوا اسکریپت . ما این موضوع را از ادغام jQuery می دانیم. و چه چیزی در بین هم قرار دارد ، من دوباره کمی واضح در اینجا کپی می کنم:
ممکن است - حتی اگر متفاوت به نظر برسد - فقط یک خط فرمان واحد باشد. بیایید با [پژواک با [1] با اولین و آخرین apostrophe و تک رنگ در عقب شروع کنیم. از آنجا که echo کاری غیر از نوشتن چیزی بین نقل قول ها در صفحه HTML نمی کند. بنابراین بیایید فقط بگوییم که ، پس [جاوااسکریپت باقی مانده است ، دقیقتر یک دستور jQuery.get ، این یک تماس آژاکس است . و چه می کند ، من سعی دارم به زبان طبیعی ترجمه کنم:
تماس با برنامه سرور amaprox.php و [پاراگراف را به ، یعنی $ asin و قالب $ و یک تابع قبل از آماده می کنند ، که نامی ندارد ، اما باید نام ببرد بعداً جواب amaprox.php ] می رسد. وظیفه بازگشت همه است ، که amaprox.php را به عنوان پاسخ در متغیر amaprox_response باز می گرداند. سپس این تابع باید موارد زیر را انجام دهد: با کمک jQuery در کد HTML عنصر DIV با شناسه $ div_id جستجو و در آنجا پاسخ amaprox_response insert .
اگر قبلاً این را ندیده اید ، این Ajax در نبوغ کامل خود است. این درخواست را به سرور ارسال می کند ، اما پس از آن منتظر نمی ماند تا پاسخی حاصل شود ، اما برای پاسخ به سادگی یک تابع آماده می کند ، که بعداً بعداً می چرخد. مراقبت. در همین حال ، مرورگر می تواند کار دیگری انجام دهد ، ساخت صفحه را تمام کند یا با کاربر در تعامل باشد.
و اکنون سؤال دانش برای کسانی که معتقدند نمونه کد را درک کرده اند: "چرا متغیر $ div_id یک نشانه دلار در آغاز ، متغیر amaprox_response اما نه؟ "پاسخ در انتهای مقاله است.
فکر می کنم معلوم شده است که مشخص شده است این AmaProx Client می سازد: ASIN و الگو را به Proxy Amazon ارسال کنید و نتیجه را بدست آورید - یک کد HTML HTML با تبلیغات - در وب سایت. من می خواهم از مثال زیر استفاده کنم تا بتوانم انواع هوشمندانه تری از این فرم ساده بسازید.
مشتری 2: ایضا با ادکار
<؟ php
$ asins = آرایه (
"B07XVHTVK1" کیت بقا Premium Monkey Jungle
"B07DMDMDTT" ، # goTele ردیاب ردیاب GPS در زمان واقعی و بدون هزینه ماهانه
"B076VW8ZF9" ، # GPORTER GP-102 + دستگاه GPS در فضای باز - مجموعه XXL ، سبز
"B07TXC119Y" ، ساعت هوشمند Amazfit Bip Lite 3ATM با عمر باتری 45 روزه
"B07SL55QXL" ، # Zagwog Smartwatch ، دستبند تناسب اندام ضد آب IP68
"B07XLF1K8V" ، # اپل واچ سری 5
"B01N1TDZB9" ، # Garmin fēnix 5 ساعت هوشمند GPS Multisport
"B07Q2VFQPN" ، ساعت هوشمند HOLALEI ، دستبند تناسب اندام ضد آب
"B006E0P7J4" ، ماوس USB NA NAOCKOCK GPS NL-602U
"B07TV3QWKZ" ، # ماشین ردیاب GPS ، وسایل نقلیه و کامیون GPS SALIND پلاگین OBD2
"B07FL5YXQM" ، دوربین شکاری # APEMAN 10x42
"ردیاب موتور سیکلت حرفه ای # Afterpartz OVO-103B" B01FWZ0LTC "
"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 را در مقالات ما وارد کند ، این خیلی دشوار است. وردپرس همچنین راه حلی برای چگونگی دستیابی به آن و آنچه که [کدکوتاه نامیده می شود ارائه می دهد. اینها همانند براکت های مربعی هستند که برای آنها یک بلوک جداگانه در ویرایشگر گوتنبرگ وجود دارد. به عنوان مثال ، می توانیم کد کوتاه زیر را در مقاله بنویسیم:
در اینجا تصویری از ارسال قطعه . شخص می بیند یک ورودی با نام amaprox ، علامت چک درست برای کد کوتاه و PHP Code و کد برنامه برای اجرا وجود دارد. کد از براکت PHP خارج نمی شود ، در غیر این صورت شبیه به مثال اول در این مقاله است. با یک تفاوت ، با این وجود: ASIN و Temple مستقیماً در کد برنامه نیستند ، در عوض این خط زیر وجود دارد:
list ($ $، asin) = منفجر شود (""، trim ("{محتوا } "))؛
ابتدا توجه داشته باشید به محتوای 45 ، که نه پی اچ پی و نه جاوا اسکریپت است ، اما ارسال قطعه ها . بنابراین ، Post Snippets این مورد را درون کد برنامه وارد می کند ، که در مقاله وبلاگ درون محفظه کد کوتاه قرار دارد ، بنابراین در اینجا قالب و ASIN قرار دارد. سپس خط برنامه به شرح زیر است: {محتوای { ، را حذف کنید هر فضاهای هم مرز ، را تقسیم کنید باقی مانده های خالی و قطعات را در قالب $ [قالب و $ asin ذخیره کنید. و در اصل ما بقیه کد را می دانیم.
اما jQuery کجا ماند؟ البته هنوز هم به آن احتیاج داریم ، اما معمولاً jQuery قبلاً در وردپرس گنجانده شده است ، بنابراین نیازی به انجام کاری در اینجا نیست.
نتیجه گیری
همیشه لازم نیست یک افزونه گران قیمت باشد ، با کمی شما اغلب می توانید به خود برنامه نویسی کنید - حتی با وردپرس. این راه حل پروکسی آمازون این مزیت را دارد که در واقع در WordPress مداخله نمی کند ، هر چیزی را در دیتابیس می نویسد و هیچ وابستگی به آن ندارد. این ما را در مورد به روزرسانی های آینده وردپرس اطمینان می دهد. رابط پلاگین Post Snippets را ایجاد می کند - در بدترین حالت باید آن را با یک مورد دیگر جایگزین کنید. و اگر از WordPress استفاده نمی کنید ، می توانید از این راه حل استفاده کنید و آن را در سیستم [محتوامدیریتمحتوا دیگری قرار دهید.
اوه بله - به سؤال من : "چرا؟ متغیر $ div_id یک علامت دلار در آغاز ، متغیر amaprox_response اما نه؟ پاسخ : $ div_id یک متغیر PHP است ، برخلاف amaprox_response ، که یک متغیر جاوا اسکریپت است.