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 :: Версия для печати :: noindex с иключениями
Форумы портала PHP.SU » » Вопросы новичков » noindex с иключениями

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

1. Kimtom - 22 Июля, 2011 - 23:44:33 - перейти к сообщению
Привет, не могу разобраться в куске кода cms datalife engine.
Смысл в том, что нужно загонять все ссылки, кроме тех, которые в .txt файле, в <noindex></noindex>
вот сам парсер ссылок:
PHP:
скопировать код в буфер обмена
  1. if ($this->safe_mode AND !$config['allow_search_link'])
  2.                                 return "<a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $show . "</a>" . $url['end'];
  3.                         else           
  4.                                 return "<a href=\"" . $url['html'] . "\" " . $target . ">" . $show . "</a>" . $url['end'];


вот мой код:
PHP:
скопировать код в буфер обмена
  1. //(!file_exists("exceptions.txt")) ? echo 'Файл исключений не существует!' : echo '';
  2.  
  3. $exfile=file("exceptions.txt");
  4.         if(!exfile)
  5.         {
  6.                 echo("Ошибка открытия файла исключений!");
  7.         }
  8. $fstr=count($exfile);
  9. for ($i=0;$i<$fstr;$i++)
  10.         {
  11.                 if ($exfile[$i]==$target)
  12.                         return "<a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $show . "</a>" . $url['end'];
  13.                 else           
  14.                         return "<a href=\"" . $url['html'] . "\" " . $target . ">" . $show . "</a>" . $url['end'];
  15.         }


Мне не ясно с чем сравнивать $exfile[$i].
ах да, не хочет работать короткая форма if'a: syntax error, unexpected T_ECHO in...line 3
2. iflight - 23 Июля, 2011 - 00:27:14 - перейти к сообщению
насколько я понял:
$exfile[$i] == $url['html'] - то доуфоллоу, иначе ноуфоллов.
И функция file() оставляет знаки переноса, так что перед ифом ссылки-исключения надо подготовить
3. Kimtom - 25 Июля, 2011 - 01:33:20 - перейти к сообщению
Всёравно работает как то криво, если работает вообще.
PHP:
скопировать код в буфер обмена
  1. $exfile=file("exceptions.txt");
  2. if(!$exfile) echo("Ошибка открытия файла исключений!");
  3. $fstr=count($exfile);
  4. for ($i=0;$i<$fstr;$i++)
  5.     {
  6.     $pos=strpos($url['html'],$exfile[$i]);
  7.     if ($pos===false)
  8.         return "<noindex><a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $show . "</a></noindex>" . $url['end'];
  9.     else        
  10.         return "<a href=\"" . $url['html'] . "\" " . $target . ">" . $show . "</a>" . $url['end'];
  11.     }
4. DeepVarvar - 25 Июля, 2011 - 07:54:49 - перейти к сообщению
Не знаю каким образом вы там формируете ссылку...
Представим что ваша ссылка ВСЯ находится в $link.
PHP:
скопировать код в буфер обмена
  1. $goodlinks = file("goodlinks.txt");
  2. function checklink($goodlinks,$link) {
  3.   foreach($goodlinks as $goodlink){
  4.     if (stristr($link,trim($goodlink))) return $link;
  5.     else return "<!-- noindex -->$link<!-- /noindex -->";
  6.     }
  7.   }
5. Kimtom - 25 Июля, 2011 - 23:45:08 - перейти к сообщению
везде предлагают свои версии, неужели трудно указать на ошибку в моем коде?
ps: ссылка $url['html']
6. iflight - 26 Июля, 2011 - 00:22:11 - перейти к сообщению
Kimtom пишет:
везде предлагают свои версии, неужели трудно указать на ошибку в моем коде?

Так тут никто не знает как выглядят твои ссылки и исключения изначально) У DeepVarvar вроде бы очень наглядно)
Как уже говорил очисти ссылки-исключения от лишних знаков, в этом может быть проблема.
7. Мелкий - 26 Июля, 2011 - 09:01:26 - перейти к сообщению
Kimtom пишет:
неужели трудно указать на ошибку в моем коде?

Нам - конечно, не трудно. Вот здесь все ошибки: phpfaq.ru/debug

 

Powered by ExBB FM 1.0 RC1