نوفالو لینک خارجی در php

نوفالو لینک خارجی در php

در php  باید توجه داشته باشید که اگر صفحه ای با قصد لینک خارجی دادن طراحی شده باید لینک ها نو فالو باشد برای نوفالو کردن لینک های خارجی در زبان برنامه نویسی php با استفاده از DOMDocument می شود

زمان مطالعه: 3 دقیقه
بازدید: 936
پرسش و پاسخ: 0

پس وقتی اطلاعات را از دیتابیس واکشی می کنیم و می خواهیم مطالب را به کاربر نشان دهیم با یک تابع در php این کار را می کنیم. البته پیشنهاد ما این است که در هنگام ذخیره کردن مطلب در دیتابیس این کار را انجام دهید و هزینه (درصد استفاده از cpu) را کاهش دهید چرا ؟ با فرض اینکه سایت شما 1000 کاربر فعال دارد و هرکدام هر مقاله ای از سایت که این تابع را برای nofollow کردن لینک ها انجام می دهد را اجرا کند خوب چه سربار سنگینی به سرور وارد می شود!!!

این کار را شما می توانید به صورت سه روش ذیل انجام دهید:

  • جستجو و replace کردن در خود دیتابیس با اتفاق افتادن یک رویداد با استفاده از پروسیجر
  • replace کردن قبل از ثبت با استفاده از php
  • replace کردن در هنگام نمایش با php

اگر نیاز به طراحی سایت با php دارید بهتر است بدانید این زبان تقریبا 70 درصد وب را در اختیار دارد

ما فعلا nofollow کردن با php  هنگام نمایش مطلب رو در این مطلب توضیح خواهیم داد. ما پیش فرض فکر می کنیم که شما یک کلاس دارید که برای نمایش پست ها مورد استفاده قرار میگیرد پس توابع ذیل رو بهش اضافه می کنیم (البته می توانید از توابع static استفاده کنید که در تمام قسمت ها راحت بتونید استفاده کنید)، یکی از فعالیت مهم در سئو نوفالو کردن لینک های خارجی است.

مراحل کار در کلا:

  • در کلاس مورد نظرمون تابع getRootDomain رو اضافه می کنیم این تابع برای تشخیص لینک های داخل مطلب هستش که آیا لینک جزو لینک های داخلی خود سایتمون هست یا یک لینک خارجی؟
public function getRootDomain($url)
    {
        if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
            $url = "http://" . $url;
        }
        return implode('.', array_slice(explode('.', parse_url($url, PHP_URL_HOST)), -2));
    }
  • باز در کلاس مورد نظر تابع اصلی رو درست می کنیم که متن رو replace کنیم
 public function Nofollow($text)
    {
        $domains = array('jobteam.ir');
        $dom= new \DOMDocument();
        $dom->loadHTML('<?xml encoding="utf-8" ?>' .$text);
        $dom->preserveWhiteSpace = false;
        $dom->formatOutput = true;
        foreach ($dom->getElementsByTagName('a') as $link) {
            $href = $link->getAttribute('href');
            if (!in_array(self::getRootDomain($href), $domains)) {
                $link->setAttribute('rel', 'nofollow');
            }
        }
        return $dom->saveHTML();
    }

آموزش شی گرایی در php به زبان ساده در جاب تیم برای شما قابل مطالعه است

کلاس DOMDocument که داخل تایع nofollow هستش پیش فرض در php موجود می باشد و نیازی به نصب ندارد. بعد از اتمام کار در نمایش پست متنی که می خواهید لینک های خارجی آن به صورت nofollow شود را قبل چاپ به تابع nofollow پاس دهید. نحوه استفاده به صورت ذیل

echo Nofollow($query->text) 

اگر در مورد لینک نوفالو اطلاعاتی ندارید بهتر است تفاوت لینک‌ فالو (follow) و نوفالو (nofollow) و تاثیر آن در سئو را مطالعه کنید 

بهزاد میرزازاده
مسیر درست با پرسش های درست ساخته می شود

مشاهده تمام مطالب نویسنده