your text
The above warning is displayed in PHP 8.1 after upgrading from PHP 7.4
Any ideas on how this code can be changed for PHP 8.1 compatibility?
private function cleanInput2($strRawText, $strAllowableChars, $blnAllowAccentedChars)
{
$iCharPos = 0;
$chrThisChar = "";
$strCleanedText = "";
//Compare each character based on list of acceptable characters
while ($iCharPos < strlen($strRawText))
{
// Only include valid characters **
$chrThisChar = substr($strRawText, $iCharPos, 1);
if (strpos($strAllowableChars, $chrThisChar) !== FALSE)
{
$strCleanedText = $strCleanedText . $chrThisChar;
}
elseIf ($blnAllowAccentedChars == TRUE)
{
// Allow accented characters and most high order bit chars which are harmless **
if (ord($chrThisChar) >= 191)
{
$strCleanedText = $strCleanedText . $chrThisChar;
}
}
$iCharPos = $iCharPos + 1;
}
return $strCleanedText;
}
You should check your $strRawText to ensure it's not null before passsing to strlen(). This can be done either with explicit check or adding typehint.
You can also alternatively use null coalescing; which is more concise.
while ($iCharPos < strlen($strRawText ?? '')) ...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With