Как использовать функцию chr () в массиве для очистки строк от опасных символов в PHP? - PullRequest
0 голосов
/ 10 февраля 2019

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

<?php
function ascii(){
    $j = 0;
    for ($i = 33; $i < 65; $i++){
        // turn $i to ascii
        $k = chr($i);
        // put it in an array
        $text[$j] = $k;
        $j++;
    }      
    print_r($text);  
}
?>

Output for the ascii() :  Array ( [0] => ! [1] => " [2] => # [3] => $ [4] => % [5] => & [6] => ' 
[7] => ( [8] => ) [9] => * [10] => + [11] => , [12] => - 
[13] => . [14] => / [15] => 0 
[16] => 1 [17] => 2 [18] => 3 [19] => 4 
[20] => 5 [21] => 6 [22] => 7 [23] => 8 
[24] => 9 [25] => : [26] => ; [27] => < 
[28] => = [29] => > [30] => ? [31] => @ ) 

Даже если это неправильный способ собрать требуемые символы ascii в массиве, просто скажите это.Также я думаю, что допустил ошибку с функциями и массивами, но не смог ее решить.Что я должен передать функции и вернуться из нее.Если я использую эту функцию в чем-то, я должен передать аргументы по ссылке?

ОБНОВЛЕНИЕ

У меня есть выход сейчас.Время улучшить функцию :).Я планирую использовать этот массив (после изменения чего-либо) с функцией обрезки в другом цикле.Это правильный способ очистки символов ASCII из строки?

1 Ответ

0 голосов
/ 10 февраля 2019

Если вы хотите использовать chr, я бы порекомендовал изменить вашу функцию на:

<?php
function ascii(){
    for ($i = 33; $i < 65; $i++)
        $text[] = chr($i);
    return $text;
}

print_r(ascii());

Если вы хотите фильтровать не алфавитный символ, вы можете использовать ctype-alpha .

Если у вас было другое предложение для массива asscii, пожалуйста, поделитесь своим делом ясно.

...