لديك حساب بالفعل؟ دخول
دخول  سجل الأن 
الموقع الآن فى الفترة التجريبية وهذا الجزء غير كامل وجارى العمل عليه، للراغبين في المساعدة برجاء التقدم
[تحسين] اضافة nofollow على الروابط بواسطة DOMDocument
التعابير القياسية اختيار غير جيد للتعامل مع الـHTML خصيصا عندما يكون البى اتش بى لديها كلاس للتعامل مع الـHTML
هذا الكود سوف يضع كلمة nofollow فى الـrel الخاص بوسم الرابط واذا كان يوجد rel بالفعل سوف يقوم بوضعها معه وليس استبدالها كليا
مثال
<a href="#">مرحبا</a>

<a href="#" rel="">مرحبا</a>

<a href="#" rel="tag">مرحبا</a>

<a href="#" rel="nofollow">مرحبا</a>
ستتحول الى
<a href="#" rel="nofollow">مرحبا</a>

<a href="#" rel="nofollow">مرحبا</a>

<a href="#" rel="tag nofollow">مرحبا</a>

<a href="#" rel="nofollow">مرحبا</a>
function add_no_follow($str){ 
  $dom = new DOMDocument;

  $dom->loadHTML($str);

  $anchors = $dom->getElementsByTagName('a');

  foreach($anchors as $anchor) { 
      $rel = array(); 

      if ($anchor->hasAttribute('rel') AND ($relAtt = $anchor->getAttribute('rel')) !== '') {
         $rel = preg_split('/\s+/', trim($relAtt));
      }

      if (in_array('nofollow', $rel)) {
        continue;
      }

      $rel[] = 'nofollow';
      $anchor->setAttribute('rel', implode(' ', $rel));
  }

  $dom->saveHTML();

  $html = '';

  foreach($dom->getElementsByTagName('body')->item(0)->childNodes as $element) {
      $html .= $dom->saveXML($element, LIBXML_NOEMPTYTAG);
  }

  return $html;      
}