"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني تحويل عناوين URL العادية في سلسلة إلى ارتباطات تشعبية قابلة للنقر باستخدام PHP؟

كيف يمكنني تحويل عناوين URL العادية في سلسلة إلى ارتباطات تشعبية قابلة للنقر باستخدام PHP؟

تم النشر بتاريخ 2024-12-21
تصفح:593

How can I turn plain URLs in a string into clickable hyperlinks with PHP?

ربط عناوين URL في السلاسل باستخدام PHP

يمكن أن يكون ربط عناوين URL في السلاسل مهمة مفيدة في PHP لمهام مثل إنشاء روابط قابلة للنقر في النصوص محتوى. إحدى حالات الاستخدام الشائعة هي تحويل سلسلة عادية تحتوي على عناوين URL إلى HTML مع ارتباطات تشعبية قابلة للنقر.

بناء الجملة:

$string = preg_replace(
  "~[[:alpha:]] ://[^<>[:space:]] [[:alnum:]/]~",
  "<a href=\"\\0\">\\0</a>",
  $string
);

شرح:

    نمط التعبير العادي:
  • النمط المستخدم في preg_replace يطابق السلاسل التي تبدأ ببادئة البروتوكول (على سبيل المثال، " http://") متبوعًا بحرف أبجدي رقمي واحد أو أكثر، باستثناء الأقواس الزاوية والمسافات البيضاء. وينتهي بأحرف أبجدية رقمية أو شرطة مائلة.
  • سلسلة الاستبدال:
  • تتضمن السلسلة البديلة ترميز HTML لإنشاء علامة ربط () مع عنوان URL المطابق كسمة href و عنوان URL الأصلي كمحتوى النص.
  • مثال:

$input = "انظر إلى http://www.google.com"; $ الإخراج = preg_replace( "~[[:alpha:]] ://[^[:space:]] [[:alnum:]/]~", "\\0", إدخال $ ); صدى $ الإخراج؛ // الإخراج: "انظر إلى http://www.google.com"

$input = "Look on http://www.google.com";
$output = preg_replace(
  "~[[:alpha:]] ://[^<>[:space:]] [[:alnum:]/]~",
  "<a href=\"\\0\">\\0</a>",
  $input
);

echo $output; // Output: "Look on http://www.google.com"

هذا الحل متوافق مع كل من إصدارات PHP قبل الإصدار 5.3 (باستخدام ereg_replace) وPHP 5.3 والإصدارات الأحدث (باستخدام preg_replace).

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3