"PHP" / Говнокод #3790 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
<?php
$text  = '<td>   
  <img src="https://site/accounts/msh.gif"     alt="История веб-поиска">   
  </td>   
  <td style="font-size:83%"> '; 
$beforeText = '<div>'; 
$afterText = '</div>';

$curPos = 0; 
while(false !== $imgTagStartPos = stripos($text, '<img', $curPos)) 
{ 
    if(!ctype_space($text[$imgTagStartPos + 4])) 
    { 
        $curPos += $imgTagStartPos + 4; 
        continue; 
    } 
    $imgTagEndPos = stripos($text, '>', $imgTagStartPos + 5); 
    if(false === $imgTagEndPos) 
        break; 
    $imgTagLen = $imgTagEndPos + 1 - $imgTagStartPos; 
    $imgTag = substr($text, $imgTagStartPos, $imgTagLen); 
    $text = substr_replace($text, "{$beforeText}{$imgTag}{$afterText}", $imgTagStartPos, $imgTagLen); 
    $curPos = $imgTagEndPos + 1 + strlen($beforeText) + strlen($afterText); 
}

Замена всех "<img .*>" на "<div><img .*></div>". Взято с форума http://softtime.ru/forum/read.php?id_forum=1&id_theme=75199 , хотя ниже автор этого кода написал нормальный вариант с регэкпами.

Запостил: nikita2206 nikita2206, (Updated )

Комментарии (9) RSS

    • ну и что? developer.mozilla.org дык вообще весь на https (хотя это временами достает).
      Ответить
        • это уже другой вопрос...
          например, чтобы не сильно умные боты обламывались.
          Ответить
          • Бот, если его писал не школьник, использует для подключения нормальные HTTP клиенты (например curl, или Apache Commons HTTP Client), которые одинаково работают как с HTTP так и с HTTPS.
            Ответить
            • Бот же еще и настроить надо, сертификаты ему подсунуть для нормальной работы с https, что в руках школьника (что чем дальше, тем чаще встречается) как раз может оказаться невыполнимой задачей...
              Даже взять обычный wget - далеко не тупая прога, но без настройки сертификатов фиг будет качать сайт по https.
              Ответить
              • Погодите, причем тут сертификаты?

                Сертификаты в HTTPS участвуют в двух случаях:
                1) сервер сертификатом доказывает что он настоящий
                2) клиент сертификатом доказывает что он настоящий

                B обычном HTTPS сайте используется только первый случай. Второй используется крайне редко, обычно для авторизации в локальных сервисах (типа outlook web access) или в очень секурных (типа банков). Обычным сайтам хватает логин-пароль авторизации.

                Так что настраивать сертификат на клиенте надо не всегда, а только во втором случае.
                Ответить
    • попробуйте зайти на сайт по хттпс, а картинки загрузить по хтпп.

      Бравзер заорет что есть несекъюрные коннекты
      Ответить
  • Это можно сделать на уровне JS, при помощи jQuery.

    $('img').wrap('<div />');
    Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8