برنامج نصي بسيط لتقصير URL. صفحات التحميل المسبق للبرنامج النصي البسيط لتقصير عناوين URL

27.06.2020

تنزيل المصادر

أحب حل المشكلات باستخدام النصوص الصغيرة والمدمجة. كلما قل عدد التعليمات البرمجية التي يتعين عليك كتابتها، كان ذلك أفضل. لقد أتيحت لي الفرصة مؤخرًا للقيام بذلك مرة أخرى.

يمكن حل هذه المشكلة باستخدام برنامج نصي لتقصير عنوان URL. كانت هناك خدمات توفر مثل هذه الإمكانيات لبعض الوقت، لكنها لا تخلو من عيوبها. وهنا بعض منها:

  • الاعتماد على خدمة خارجية - عندما لا تعمل، تكون الروابط غير متوفرة أيضًا. والأمر أسوأ من ذلك إذا تم إغلاق الخدمة – أنت تعرف ما سيؤدي إليه ذلك؛
  • يتم تتبع جميع الإحصائيات بواسطة خدمات خارجية؛
  • عادةً، لا يُسمح لك بتغيير مظهر الروابط المختصرة؛
  • تسمح لك بعض الخدمات باختيار ألقابك، لكن معظمها يتم تعيينها تلقائيًا.

لذا، فإن المهمة هي كتابة برنامج PHP النصي الخاص بك، والذي كان قادرًا على حل المشكلة الموضحة أعلاه!

فكرة

إذا تم إنشاء البرنامج النصي لاستخدامك الخاص فقط، فيمكنك حذف إنشاء أشياء مثل تسجيل المستخدم واللوحة الإدارية. فيما يلي الميزات التي يجب أن يتمتع بها البرنامج النصي المستقبلي لدينا:

  • سوف تبدو الروابط القصيرة http://example.com/l/short-link. ستتم إعادة توجيه الزيارة إلى عنوان URL هذا إلى العنوان الحقيقي؛
  • سيتم وضع البرنامج النصي بأكمله في ملف واحد – Index.php، بدون تبعيات خارجية؛
  • لا توجد لوحة إدارة تحتوي على أدوات لإضافة الروابط وتحريرها. ستتم إدارة كل شيء باستخدام ملف نصي بسيط موجود على الخادم، وهو سهل التعديل للغاية؛
  • لن يتم تعيين المعرفات تلقائيًا للروابط - ستدخل الاسم المستعار بنفسك.

هذه النقاط سوف تبسط نصنا المستقبلي. ولجعل الأمور أكثر وضوحًا، قررت تخزين الروابط في ملف INI لأنه من السهل تحريرها كما أن PHP لديها دعم مدمج لها عبر الوظيفة parse_ini_file(وهذا سيوفر علينا قراءة محتويات الملف وتحليله يدويًا، وهذه الوظيفة أيضًا سريعة جدًا).

ملف INI

يبدو ملف INI كما يلي:

links.ini

تطبيق

برنامج PHP الخاص بنا بسيط للغاية:

Index.php

$links = parse_ini_file("links.ini"); if(isset($_GET["l"]) && array_key_exists($_GET["l"], $links))( header("Location: " . $links[$_GET["l"]]); ) else (header("HTTP/1.0 404 Not Found"); echo "رابط غير معروف.";)

يتوقع البرنامج النصي تلقي الاسم المستعار في المصفوفة $_GET['l']، والتي تبدو كما يلي: http://example.com/index.php?l=google.

بالطبع هذا ليس اختصارًا، ولكن يمكننا تحسين ذلك باستخدام ملف .htaccess (المستخدم لتشغيل خادم الويب Apache).

هتكس

RewriteEngine On RewriteCond $1 !^(index.php) RewriteRule ^(.*)$ Index.php?l=$1 [L]

يجب أن يكون هذا الملف في نفس الدليل مثل ملف Index.php وlinks.ini. والغرض منه هو إعادة توجيه كل طلب لا ينتقل إلى ملف Index.php إلى عنوان مثل Index.php?l=xxx . سيؤدي هذا إلى الحماية من الروابط الدائرية وجعل ملف links.ini غير قابل للوصول من المتصفح.

للحصول على أفضل النتائج، ضع هذه الملفات الثلاثة في مجلد باسم قصير، مثل "l"، في المجلد الجذر للموقع، واحصل على عرض مختصر للروابط على شكل http://example.com/l /جوجل.

المثال الخاص بموقع google.com ليس واضحًا تمامًا، نظرًا لأن الرابط المختصر أطول من الرابط الأصلي، ولكن كان من المهم إظهار جوهر الآلية بالضبط، والذي آمل أن يتم تحقيقه.

خاتمة

هناك تحسين آخر يمكن إجراؤه وهو إنشاء واجهة إدارية بسيطة بحيث يمكن تغيير محتويات ملف INI.

بالطبع، هناك الكثير مما يمكن تنفيذه في هذا البرنامج النصي. آمل أن يكون خلقي مفيدًا لك!

هذا المنشور هو ترجمة للمقال " نصيحة سريعة - قم بإنشاء أداة اختصار URL بسيطة تحتوي على 10 أسطر من لغة PHP"، من إعداد فريق المشروع الصديق

وصف

علامة HTML يحدد العلاقة بين مستند HTML الحالي والمورد الخارجي الذي يرتبط به. إنه عنصر فارغ (لا يحتوي على محتوى أو علامة إغلاق) ويجب وضعه دائمًا داخل العنصر . في أغلب الأحيان العلامة تستخدم لتوصيل أوراق الأنماط الخارجية:

السمة الأولى hrefيحدد عنوان المستند، والذي يمكن أن يكون مطلقًا أو نسبيًا. السمة الثانية relيحدد العلاقة بين ملف HTML وما ترتبط به، وفي هذه الحالة نقوم بالربط بورقة أنماط، لذلك يتم استخدام قيمة ورقة الأنماط. يصف يكتبيخبر المتصفح بنوع MIME للمستند، وبالنسبة لأوراق الأنماط ستكون القيمة دائمًا "text/css" .

ملاحظة: وفقًا لمعيار HTML5، عند توصيل ملف CSS خارجي بمستند، فإن سمة النوع غير مطلوبة:

التحميل المسبق للصفحات

عادة، عندما تنقر على رابط لصفحة أخرى، عليك الانتظار بضع ثوان حتى يتم تحميله. ومع ذلك، يمكنك تكوين صفحة الويب الخاصة بك لتحميل صفحات معينة مسبقًا في ذاكرة التخزين المؤقت للمتصفح الخاص بك أثناء تواجدك في الصفحة الحالية. وهذا يعني أنه عند النقر على رابط للانتقال إلى صفحة ويب أخرى، سيتم فتحه على الفور دون الحاجة إلى الانتظار حتى يتم تحميله. وهذا ما يسمى "الجلب المسبق للصفحة". للقيام بذلك يتم استخدام العلامة باستخدام السمة rel = "prefetch"، ويحدد أيضًا الصفحة المستهدفة التي سيتم تنزيلها على الكمبيوتر مسبقًا.

سيسمح هذا الإدخال بتخزين صفحة tag_p.php مؤقتًا على جهاز الكمبيوتر الخاص بك مسبقًا أثناء قراءة محتويات الصفحة الحالية. يمكنك استخدام العلامة للتحميل المسبق لأي عدد من صفحات موقعك أو أي صفحات أخرى من الإنترنت.

ملاحظة: بدلاً من عنوان مستند HTML، يمكنك تحديد المسار إلى ملف من نوع آخر (صورة، فيديو، وما إلى ذلك).

صفات

href: يحدد موقع (URL) للملف الخارجي (يمكن تحديد مسار الملف باستخدام عنوان مطلق أو نسبي). hreflang: يحدد رمز اللغة المكون من حرفين والذي يحدد لغة المستند الذي يتم الارتباط به. يتم استخدام السمة hreflang فقط مع السمة href. الوسائط: يحدد الأجهزة التي تم تحسين الملف لها. يتم استخدامه بشكل أساسي مع ملفات ورقة الأنماط لتحديد أنماط مختلفة لأنواع الوسائط المختلفة. يمكن أن تأخذ سمة الوسائط عدة قيم مرة واحدة، مفصولة بمسافات. rel: يشير إلى العلاقة بين المستند الحالي والمستند الذي يتم الارتباط به.
  • البديل- رابط إلى نسخة بديلة من المستند (أي صفحات الطباعة أو الترجمة أو النسخة المتطابقة).
  • مؤلف- يحدد رابطًا إلى صفحة خاصة بمؤلف المستند أو إلى صفحة تحتوي على معلومات الاتصال الخاصة بالمؤلف.
  • العنوان الأساسي- يسمح لك بوضع علامة على الصفحات ذات المحتوى المكرر، وهذا يعني أن جميع الصفحات التي لها نفس المحتوى يجب أن تحتوي على العلامة باستخدام السمة rel = "canonical".

    يجب أن تحتوي سمة href، في هذه الحالة، على رابط لصفحة ذات محتوى مماثل، والتي يجب أن تعتبرها محركات البحث هي الصفحة الرئيسية:

  • أولاً- يشير إلى الرابط المؤدي إلى المستند الأول في سلسلة من المستندات.
  • يساعد- رابط إلى وثيقة مع المساعدة.
  • أيقونة- يحدد المسار إلى الأيقونة التي سيتم استخدامها للمستند الحالي.
  • آخر- يشير إلى الرابط المؤدي إلى المستند الأخير في تسلسل المستندات.
  • رخصة- رابط لمعلومات حقوق النشر للوثيقة.
  • التالي- يشير إلى أن هذا المستند جزء من سلسلة، وأن الارتباط سيؤدي إلى المستند التالي في تلك السلسلة.
  • الجلب المسبق- يشير إلى أنه يجب تخزين الملف الذي يؤدي إليه الارتباط مؤقتًا مسبقًا.
  • السابق- يشير إلى أن هذه الوثيقة جزء من سلسلة، وأن الرابط خاص بمستند سابق في تلك السلسلة.
  • يبحث- رابط للبحث عن الوثيقة.
  • ورقة الأنماط- يحدد ملفًا خارجيًا سيتم استخدامه كورقة أنماط لهذا المستند.
الأحجام: تحديد حجم الرموز للعرض المرئي. تُستخدم سمة الأحجام فقط مع rel="icon" ويمكن أن تأخذ القيم التالية:
  • العرض × الارتفاع- يحدد قائمة بالأحجام مفصولة بمسافات، ويجب أن يكون كل حجم بالتنسيق - widthxheight (يتم تحديد أبعاد الأيقونة بالبكسل)، مثال:
  • أي- يمكن تغيير حجم الأيقونة إلى أي حجم.
النوع: يشير إلى نوع MIME (مواصفات لتنسيق الرسائل وترميز المعلومات لنقلها عبر الإنترنت) للمستند الذي يتم الارتباط به، والذي يُستخدم فقط مع السمة href.

بطاقة شعار يدعم أيضا

ليس سراً أن جميع مطوري الوحدات والمكونات الإضافية وحتى أنظمة إدارة المحتوى (CMS) أنفسهم يميلون إلى ترك روابط مباشرة لمواقعهم الشخصية على الويب. في بعض الأحيان، يستغرق البحث عن مثل هذه الروابط من مشرف الموقع قدرًا كبيرًا من الوقت. الوقت الذي يمكن أن يقضيه في مهام أكثر أهمية. إن برنامج Find-Link الذي نقدمه مخصص حصريًا للبحث عن الروابط الخارجية. في الوقت نفسه، من السهل جدًا تثبيته واستخدامه: كل ما عليك فعله هو نسخ ملف البرنامج النصي إلى جذر الموقع وفتحه في المتصفح. سيُظهر لك Find-Link الملف الذي يحتوي على رابط خارجي، كما سيشير إلى الكود الخاص به. وبعد ذلك، كل ما عليك فعله هو حذفه.

يمكنك تنزيل نسخة البرنامج النصي 0.5.0
يمكنك تنزيل نسخة البرنامج النصي 0.4.0
يمكنك تنزيل نسخة البرنامج النصي 0.3.1
يمكنك تنزيل نسخة البرنامج النصي 0.3.0
يمكنك تنزيل نسخة البرنامج النصي 0.2.0
يمكنك تنزيل نسخة البرنامج النصي 0.1.0

تثبيت:

1. انسخ ملف find-link.php إلى جذر موقعك.
2. افتح الملف http://your website/find-link.php في متصفحك.

هام - إذا لم يكن لدى Find-Link الوقت الكافي لإكمال المهمة الموكلة إليه، فقم بنسخ ملف البرنامج النصي إلى الفئات الفرعية وتحقق من موقعك في أجزاء.

نأمل أن تساعدك مواردنا وجميع الأدوات التي نقدمها أكثر من مرة في العمل مع مشاريعك.