Почему я получаю 2 разных результата в этом очень простом скрипте:
$str = "114004301000301000301000";
echo $str."<br/ >"; //Prints 114004Â301000Â301000Â301000Â
$test1 = (explode("",$str));
print_r($test1); //Prints Array ( [0] => 114004 [1] => 301000 [2] => 301000 [3] => 301000 [4] => )
echo "<br /><br />";
$blah = $data['final_alle_produktid']; // Contains a string called 114004301000301000301000
$test1 = (explode("",$blah));
print_r($test1); //Prints Array ( [0] => 114004301000301000301000 )
Я не понимаю, почему второй взрыв не будет разделять строку только потому, что я возник из запроса mysql.
Изменить: я не могу даже использовать str_replace
в этом примере:
$blah = str_replace(""," ",$data['final_alle_produktid']);
echo $blah."<br/ >"; //Still prints 114004301000301000301000
Без разницы. utf8_decode ничего не меняет. Даже если я сохраню его в переменной, например, например:
$test = $data['final_alle_produktid'];
$blah = str_replace(""," ",$test);
echo $blah."<br/ >"; //Still prints 114004301000301000301000
Edit2:
print_r($blah); //Prints 114004301000301000301000
Редактировать 3
Нет решения. Не имел никакого отношения к пределу. Если я обмениваюсь с B, тогда все работает.
Решение:
Я должен был включить правильное кодирование (я просто добавил стандартные заголовки и кодировку html).
Это не работает, потому что кодировки отличаются. "" в вашем исходном коде представляется с использованием разных байтов, чем строка, которую вы получаете от MySQL, поэтому они не соответствуют и не explode
, не находит подстроку, чтобы взорваться. Вам необходимо убедиться, что вы используете ту же самую кодировку, или конвертируете кодировки по мере необходимости.
Смотрите, что каждый программист абсолютно, положительно должен знать о кодировках и наборах символов для работы с текстом и UTF-8 на всем протяжении.