Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вернуть значения ф-ции
Форумы портала PHP.SU » » Вопросы новичков » Вернуть значения ф-ции

Страниц (1): [1]
 

1. ureech - 19 Октября, 2015 - 14:47:12 - перейти к сообщению
Здравствуйте. Написал ф-цию для добавления к внешним ссылкам rel="nofollow"
PHP:
скопировать код в буфер обмена
  1.     public function nofollow($text){
  2.      
  3.         require_once('/simple_html_dom.php');
  4.      $html = new simple_html_dom( $text);
  5.      
  6.      $http = '/^http:\/\//';
  7.       $link = $html->find('a');
  8.    
  9.         foreach($link as $item){
  10.                
  11.           if( preg_match($http, $item->href)){          
  12.              $item->class="red";
  13.              $item->rel="nofollow";              
  14.                }                                       
  15.                          
  16.                          }
  17.                          
  18.                          return   $html;
  19.      
  20.     $html->clear();
  21.     unset($html);
  22.     }


Теперь нужно ссылки обернуть в <noindex>.Решил добавить в ф-цию
PHP:
скопировать код в буфер обмена
  1.                          if($html->find('a[rel=nofollow]')){                   
  2.         return str_replace($item,'<noindex>'.$item.'</noindex>',$html);
  3.                          }

Но работает только для первой ссылке,подскажите,плиз, как поправить.
2. ureech - 19 Октября, 2015 - 22:31:17 - перейти к сообщению
Вопрос решён.
3. Faraon-san - 20 Октября, 2015 - 11:55:07 - перейти к сообщению
ureech пишет:
$html->clear();
unset($html);

20 и 21 строка кода лишние
ureech пишет:
$http = '/^http:\/\//';

еще есть https

 

Powered by ExBB FM 1.0 RC1