За последние 24 часа нас посетили 37803 программиста и 7849 роботов. Сейчас ищут 1752 программиста ...

Генератор текста выдает нечитаемые спецсимволы

Тема в разделе "PHP для новичков", создана пользователем semmit69, 29 окт 2023.

  1. semmit69

    semmit69 Новичок

    С нами с:
    1 сен 2021
    Сообщения:
    2
    Симпатии:
    0
    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3.  
    4. $alphabet = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; // русский алфавит
    5. $randomString = '';
    6.  
    7. for ($i = 0; $i < 5; $i++) {
    8.     for ($j = 0; $j < 5; $j++) {
    9.         $randomString .= $alphabet[rand(0, mb_strlen($alphabet, 'UTF-8') - 1)];
    10.     }
    11.     $randomString .= ' ';
    12. }
    13.  
    14. echo $randomString;
    Во вложении запись результата. Пробовал на хостинге и локально в openserver
     

    Вложения:

  2. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.511
    Симпатии:
    284
    Строка (тип string) - это набор символов, где символ - это то же самое, что и байт. Это значит, что PHP поддерживает ровно 256 различных символов, а также то, что в PHP нет встроенной поддержки Unicode.

    https://www.php.net/manual/ru/language.types.string.php
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
  4. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.511
    Симпатии:
    284
    Ну, тогда уже так:
    Код (Text):
    1. $n = rand(1072, 1103);
    2. echo mb_chr($n);
     
  5. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия
    Добрый день!
    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3. $alphabet = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; // русский алфавит
    4. $alphabetArr = str_split($alphabet,2);
    5. $k = count($alphabetArr)-1;
    6. $randomString = '';
    7. for ($i = 0; $i < 5; $i++) {
    8.     for ($j = 0; $j < 5; $j++) {
    9.         $randomString .= $alphabetArr[ rand( 0, $k ) ] ;
    10.     }
    11.     $randomString .= ' ';
    12. }
    13. echo $randomString;
    14. // ыуюоь зчббч няйри цфцэд ъотци
    15. ?>
    Удачи!
     
  6. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия
    или так
    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3.  
    4. $alphabet = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; // русский алфавит
    5. $randomString = '';
    6. $alphabetArr = str_split($alphabet,2);
    7. shuffle($alphabetArr);
    8. $iCh = 0;
    9. for ($i = 0; $i < 5; $i++) {
    10.     for ($j = 0; $j < 5; $j++) {
    11.         $randomString .= trim($alphabet[$iCh]);
    12.         $iCh++;
    13.     }
    14.     $randomString .= ' ';
    15. }
    16.  
    17. echo $randomString;
    18. // лфвбм окзнф ъихйн фтъчф днсцы
     
  7. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия
    (Дополнение)
    К сожалению, не могу исправить ошибку в предыдущем посте. Исправил здесь:
    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3.  
    4. $alphabet = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; // русский алфавит
    5. $randomString = '';
    6. $alphabetArr = str_split($alphabet,2);
    7. shuffle($alphabetArr);
    8. $iCh = 0;
    9. for ($i = 0; $i < 5; $i++) {
    10.     for ($j = 0; $j < 5; $j++) {
    11.         $randomString .= $alphabetArr[$iCh];
    12.         $iCh++;
    13.     }
    14.     $randomString .= ' ';
    15. }
    16.  
    17. echo $randomString;
    18. // лфвбм окзнф ъихйн фтъчф днсцы