При выборе всего всегда есть пробел в конце - PullRequest
3 голосов
/ 23 января 2012

Я написал этот маленький скрипт, который генерирует хороший случайный пароль.Проблема у меня заключается в том, что когда вы открываете страницу и выбираете все + копировать текст в буфер обмена.В конце всегда есть место, даже если я использую отделку.Есть ли способ исправить это?

Протестировано с использованием Firefox.

ОБНОВЛЕНИЕ: Хорошо, после тестирования на примере jsfiddle это не имеет ничего общего с PHP, потому что я получаю то же самоевыпуск здесь.Это та же проблема всегда добавлять пробел в конце.

    <?php
function random_readable_pwd($length=10){

    // the wordlist from which the password gets generated 
    // (change them as you like)
    $words = 'AbbyMallard,AbigailGabble,AbisMal,Abu,Adella,TheAgent,AgentWendyPleakley,Zini';

    // Split by ",":
    $words = explode(',', $words);
    if (count($words) == 0){ die('Wordlist is empty!'); }

    // Add words while password is smaller than the given length
    $pwd = '';
    while (strlen($pwd) < $length){
        $r = mt_rand(0, count($words)-1);
        $pwd .= $words[$r];
    }

    $num = mt_rand(1, 99);
     if ($length > 2){
        $pwd = substr($pwd,0,$length-strlen($num)).$num;
    } else { 
        $pwd = substr($pwd, 0, $length);
    }

   $pass_length = strlen($pwd);
   $random_position = rand(0,$pass_length);

   $syms = "!@#%^*()-?";
   $int = rand(0,9);
   $rand_char = $syms[$int];

   $pwd = substr_replace($pwd, $rand_char, $random_position, 0);

    return $pwd;
}
?>
<html><head><title>Password generator</title></head>
<body><?php echo random_readable_pwd(10); ?></body>
</html>

1 Ответ

2 голосов
/ 23 января 2012

Неважно, что вы на стороне сервера. В итоге вы получите это:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
</head>
<body>foo</body>
</html>

(я добавил DOCTYPE, чтобы избежать двусмысленности.) Если вы проверите HTML как , интерпретируемый Firefox (для этого вам понадобится Firebug), вы найдете следующее:

<body>foo </body>

Так что нужно сгенерировать другую разметку HTML. Одна возможность:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
</head>
<body>
    <p>foo</p>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...