Результат отличается при использовании base64_decode с php

0

У меня есть некоторые проблемы с кодировкой base64 и декодированием, я хотел бы декодировать мою строку с php, я нашел решение, но он не работает хорошо. Мое ожидание я бы хотел декодировать только строку, которая была кодирована и другая строка, которая не закодирована должен оставаться нормальным.

Вот строка:

$string  = "I need your help 4Z6B4Z+S4Z6b4Z624Z+G4Z6E4oCL4Z6O4Z624Z6f4Z+L4oCL";

Вот что я пробовал:

echo base64_decode($string);

Результат:

SSBuZWVkIHlvdXIgaGVscA = ខ្លាំង​ណាស់​

Результат выше не то, что мне нужно, ниже - то, что мне нужно:

I need your help ខ្លាំង​ណាស់​

Итак, кто-нибудь может сказать мне, как это сделать с php.

  • 0
    base64_decode ожидает строку в кодировке base64. Сначала необходимо отделить части base64 от других текстовых частей, выполнить base64_decode них base64_decode , а затем объединить их обратно в одну строку.
  • 0
    Другая проблема заключается в том, как вы относитесь к строке как "ROFL" . Его можно интерпретировать как обычный текст или строку в кодировке base64 (которая декодируется в 3-байтовую строку).
Показать ещё 1 комментарий
Теги:
codeigniter

1 ответ

0

Это должно сработать для вас:

<?php

    $str = "I need your help 4Z6B4Z+S4Z6b4Z624Z+G4Z6E4oCL4Z6O4Z624Z6f4Z+L4oCL";


    for($count = 0; $count < strlen($str); $count++) {

        $temp = substr($str, $count, strlen($str));
        if ( base64_encode(base64_decode($temp, true)) === $temp) {
            echo substr($str, 0, $count) . base64_decode($str);
            break;
        }

    }

?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню