이 기사는 PHP 트림 방법을 사용하여 발생하는 문제에 대한 분석을 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
Scenario
PHP에서 문자열을 가로채기 전후의 문자에는 ltrim, rtrim, Trim 세 가지 방법이 있습니다.
다음 예에서는 ltrim 방법만 예시로 사용됩니다. 저는 매우 무지합니다. 이 소스 코드를 본 적이 없습니다.) 문자열 왼쪽에 있는 빈 문자열, 빈 탭 문자 등을 삭제하려면 ltrim($str)
위의 모든 내용은 제가 생각한 범위 내에 있으며, 한때 일부 문자열에 대해 openssl_encrypt 암호화를 수행해야 할 필요가 있기 전까지는 항상 이렇게 사용했습니다. 암호화 후 base64를 만든 다음 스플라이스합니다. KO:, 각 암호화가 완료된 후 KO: 문자가 연결됩니다. 마찬가지로, 해독 전에 KO:가 제거되고 해독되는 방법에 관계없이 실패합니다. 나중에 여러 개의 중단점을 만들었고 예상했던 결과가 다르다는 것을 알았습니다.
<?php // 以下做一个简单的情景复现 $str = "abccabdefg"; $character_mask = “abc”; var_dump(ltrim($str, $character_mask)); // 输出结果为 bdefg,而不是只截取前三位的abc
<?php $str = "abcccabdecbag"; $res = ''; $character_mask = 'abc'; $arrStr = str_split($str); // 字符串转数组 for ($i=0; $i<=count($arrStr); $i++) { if(strpos($character_mask, $arrStr[$i]) !== false) { unset($arrStr[$i]); } else { break; } } echo ltrim($str, $character_mask); echo "\r\n"; echo implode($arrStr); echo "\r\n";
해결책은 PHP에서 일부 문자열 조작 기능을 사용하고 더 많은 풀뿌리 판단을 추가하는 것입니다
if (substr($str, 0, strlen($character_mask)) == $character_mask) { echo substr($str, strlen($character_mask)); }
위 내용은 php Trim 방식 사용으로 인한 문제점 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!