1. PHP / Говнокод #3790

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 27 Июля 2010

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

    • > https://site/accounts/msh.gif
      Да. Без HTTPS никак.
      Ответить
      • ну и что? 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 />');
      Ответить

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