Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / символы из массива в строку, с сохранением символов / 14 сообщений из 14, страница 1 из 1
24.05.2016, 20:27
    #39242709
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
Есть массив, состоящий из англ букв, цифр, и др символов. нужно выбрать из массива х рандомных элементов и сделать из них строку СИМВОЛОВ. Суть проблемы в том что при implode http://php.net/manual/ru/function.implode.php элементы собираються в строку НО все они преобразовываються в числа.

Есть др способ: в цилке по 1 эл массива лепить к строке - так работало и работает, но я хочу по другому сделать (по научному :))

Может кой-то (?) параметр указать, или еще что-то и оно в одной строчке кода склеит нужную строку.

---
Я вам не надоел?
...
Рейтинг: 0 / 0
24.05.2016, 22:05
    #39242740
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
что значит преобразовываются в числа? Покажите код и тестовый пример
...
Рейтинг: 0 / 0
24.05.2016, 22:36
    #39242751
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
function genpsw() {
    //отакий от масивчик
    $mass = array(
        '.',
        '?',
        '!',
        '@',
        '#',
        '$',
        '%',
        '^',
        '&',
        '*',
        '(',
        ')',
        '-',
        '=',
        '_',
        '+',
        '0',
        '1',
        '2',
        '3',
        '4',
        '5',
        '6',
        '7',
        '8',
        '9',
        'A',
        'B',
        'C',
        'D',
        'E',
        'F',
        'G',
        'H',
        'I',
        'J',
        'K',
        'L',
        'M',
        'N',
        'O',
        'P',
        'Q',
        'R',
        'S',
        'T',
        'U',
        'V',
        'W',
        'X',
        'Y',
        'Z',
        '0',
        '1',
        '2',
        '3',
        '4',
        '5',
        '6',
        '7',
        '8',
        '9',
        'a',
        'b',
        'c',
        'd',
        'e',
        'f',
        'g',
        'h',
        'i',
        'j',
        'k',
        'l',
        'm',
        'n',
        'o',
        'p',
        'q',
        'r',
        's',
        't',
        'u',
        'v',
        'w',
        'x',
        'y',
        'z');

  
    
    $x = 0; //Для використання в циклі
    $psw = '';
    shuffle($mass);//1 раз перемішати масив
    while ($x < 16) {
    $z = array_rand($mass);
    
    echo "$x char = $mass[$z]
";

    $psw = "$psw$mass[$z]";
  
  echo "<br>psw = $psw<br>";
    $x++;
    }
   echo "<br><b>$psw</b><br>"; //показати увесь пароль
    return ($psw);


Это работает. щас "неправильный" код покажу...
...
Рейтинг: 0 / 0
24.05.2016, 22:43
    #39242755
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
http://itmages.ru/image/view/4311394/e8895bcd
вот так получается в цикле. Щас будет "неверный код".
...
Рейтинг: 0 / 0
24.05.2016, 22:45
    #39242757
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
это ПРАВИЛЬНЫЙ код. я неправильно выше скопипастил
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
$x = 0; //Для використання в циклі
    $psw = '';
    shuffle($mass);//1 раз перемішати масив
    while ($x < 16) {
    $z = array_rand($mass);
    //Вибрати один випадковий елемент з масиву
  //echo "$x char = $mass[$z]
";

    $psw = "$psw$mass[$z]";
    //До пустого рядка додати символ паролю, отриманого з масиву
    //  і вивести те що вийшло, для відладки
   echo "<br>psw = $psw<br>";
    $x++;
    }//Кінець циклу
   echo "<br><b>$psw</b><br>"; //показати увесь пароль
   exit;
    return ($psw);
}


масив все тот же
...
Рейтинг: 0 / 0
24.05.2016, 22:50
    #39242760
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
вот "НЕ ПРАВИЛЬНЫЙ" КОД.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 
    shuffle($mass);
    var_dump($mass);
    $psw=array_rand($mass,16);
//ПОСЛЕ ВЫДОРА РАНДОМНЫХ ЗНАЧ ОНО СТАЕТ ЧИСЛАМИ. 
//ИЛИ ??? ТУТ ВЫБИРАЮТСЯ НЕ ЗНВАЧЕНИЯ А КЛБЮЧИ МАССИВА???
    var_dump($psw);
    print_r($psw);
    $psw=implode('', $psw);
    
  
   echo "<br><b>$psw</b><br>"; //показати увесь пароль
   exit;
    return ($psw);
}
...
Рейтинг: 0 / 0
24.05.2016, 22:54
    #39242762
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
http://itmages.ru/image/view/4311417/79bf2036

По макс и мин знеачению я все таки больше склоняюсь к тому что єто ключи массива.
...
Рейтинг: 0 / 0
24.05.2016, 23:00
    #39242763
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
а не надо склоняться, в доке прям так и написано, что возвращает ключи случайных значений.
Код: php
1.
2.
shuffle($mass);
$pwd = implode('', array_slice($mass, 0, 16));
...
Рейтинг: 0 / 0
24.05.2016, 23:04
    #39242765
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
function genpsw() {
    //отакий от масивчик
    $mass = array(
        '.',
...
...
...
        'x',
        'y',
        'z');


    shuffle($mass);
   var_dump($mass);
    $psw=array_rand($mass,16);
    var_dump($psw);

    $psw=implode('', $psw);
   var_dump($psw);
    
  
   
   echo "<br><b>$psw</b><br>"; //показати увесь пароль
   exit;
    return ($psw);
}


выдает
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
/var/www/html/...
array (size=88)
  0 => string 'R' (length=1)
  1 => string '!' (length=1)
...
  86 => string 'L' (length=1)
  87 => string '3' (length=1)

/var/www/html/...
array (size=16)
  0 => int 1
  1 => int 4
  2 => int 10
  3 => int 33
  4 => int 38
  5 => int 41
  6 => int 55
  7 => int 63
  8 => int 70
  9 => int 74
  10 => int 75
  11 => int 76
  12 => int 80
  13 => int 81
  14 => int 86
  15 => int 87

/var/www/html/... string '141033384155637074757680818687' (length=30)


141033384155637074757680818687
...
Рейтинг: 0 / 0
24.05.2016, 23:09
    #39242766
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
SharuPoNemnoguа не надо склоняться, в доке прям так и написано, что возвращает ключи случайных значений.
Код: php
1.
2.
shuffle($mass);
$pwd = implode('', array_slice($mass, 0, 16));


"смотрю в книгу - вижу..."

В школе военрук говорил "Книжка в сумці, *** (дівка) на думці"
---
но эм-м... это-вот Возвращает строку , содержащую строковое представление всех элементов массива в указанном порядке, со строкой glue между каждым элементом. - шото я не понимаю в жизни(?).
...
Рейтинг: 0 / 0
24.05.2016, 23:15
    #39242768
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
$pwd = implode('', array_slice($mass, 0, 15) );
нумерация как-бэ с 0
...
Рейтинг: 0 / 0
24.05.2016, 23:17
    #39242770
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
Ваш пример выберет значения от 0 до х начиная с начала массива?
ну что я спрашиваю. щас проверю.
...
Рейтинг: 0 / 0
24.05.2016, 23:48
    #39242777
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
aliskin,

Чувак, для начала объясни что ты вообще хочешь сделать. Из твоих 50 сообщений пока непонятно
...
Рейтинг: 0 / 0
25.05.2016, 00:58
    #39242795
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
символы из массива в строку, с сохранением символов
Уже сделал и все работает. Не вникайте, если на понимаете.

Ошибка была в том что я перед имплоде испошльзолвал array_rand() - отсюда и ключи взялись, а не значения.

Это ф генерации пароля. Какая есть, такая и есть. То что пароль не реально запомнить меня не волнует.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function genpsw() {
    //отакий от масивчик
    $mass = array(
        '.',
        '?',
массив
        'z');


    shuffle($mass);
    $psw = implode('', array_slice($mass, 0, 16));

    //var_dump($psw);

    echo "<br><b>$psw</b><br>"; 
    //exit;
    return ($psw);
}
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / символы из массива в строку, с сохранением символов / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]