문자열에서 선두 문자를 제거하려면 어떻게 해야 합니까?
다음과 같은 입력 문자열이 있습니다.
$str = ':this is a applepie :) ';
처음 발생한 항목을 제거하려면 어떻게 해야 합니까?:
PHP를 사용할 수 있습니까?
원하는 출력:this is a applepie :)
이 함수는 다음과 같은 경우에 도움이 될 수 있습니다.
$str = substr($str, 1);
문자열은 0부터 인덱싱되며 이 함수는 두 번째 파라미터가 컷스타트를 수행합니다.1로 하면 첫 번째 글자가 사라집니다.
삭제 간격:
문자열 선두부터 ltrim을 사용할 수 있습니다.
$str = '::f:o:';
$str = ltrim($str, ':');
var_dump($str); //=> 'f:o:'
기판 사용:
$str = substr($str, 1); // this is a applepie :)
다음 3가지 답변에 대한 실행 시간:
케이스를 교체하여 첫 번째 문자를 제거합니다.
$str = "hello";
$str[0] = "";
// $str[0] = false;
// $str[0] = null;
// replaced by �, but ok for echo
1.000.000 테스트의 EXEC 시간:0.39602184295654
초
subst()를 사용하여 첫 번째 문자를 삭제합니다.
$str = "hello";
$str = substr($str, 1);
1.000.000 테스트의 EXEC 시간:5.153294801712
초
ltrim()을 사용하여 첫 번째 문자를 삭제합니다.
$str = "hello";
$str= ltrim ($str,'h');
1.000.000 테스트의 EXEC 시간:5.2393000125885
초
preg_replace()를 사용하여 첫 번째 문자를 삭제합니다.
$str = "hello";
$str = preg_replace('/^./', '', $str);
1.000.000 테스트의 EXEC 시간:6.8543920516968
초
승인된 답변:
$str = ltrim($str, ':');
동작하지만 여러 개를 삭제합니다.:
두 개 이상일 때.
$str = substr($str, 1);
는 시작 부분에서 모든 문자를 삭제합니다.
하지만,
if ($str[0] === ':')
$str = substr($str, 1);
완벽하게 동작합니다.
갱신하다
더 테스트를 한 후, 더 이상 이것을 사용하지 않는 것이 좋습니다.MySQL 쿼리에서 업데이트된 문자열을 사용할 때 문제가 발생하였고, 다음 항목으로 변경하였습니다.substr
문제를 해결했습니다.저는 이 답변을 삭제할까 생각했지만, 댓글에 따르면 더 빠르다고 해서 누군가 사용할 수 있을 것 같습니다.업데이트된 문자열을 트리밍하면 문자열 길이 문제가 해결될 수 있습니다.
기능이 필요 없는 경우도 있습니다.
$str[0] = '';
예를 들어 다음과 같습니다.
$str = 'AHello';
$str[0] = '';
echo $str; // 'Hello'
이 메서드는 다른 문자열을 작성하는 대신 기존 문자열을 변경합니다.
$str = substr($str, 1);
echo substr('abcdef', 1); // bcdef
주의:
unset($str[0])
문자열의 일부를 설정 해제할 수 없기 때문에 동작하지 않습니다.
Fatal error: Cannot unset string offsets
mb_syslog 함수를 사용합니다.
mb_substr("我abc", 1);
배열의 모든 단어를 문자열의 시작과 끝부터 공백으로 트리밍합니다.또한 필요에 따라 일반 trim()에 따라 추가 단일 문자를 트리밍합니다.
<?php
function trim_words($what, $words, $char_list = '') {
if(!is_array($words)) return false;
$char_list .= " \t\n\r\0\x0B"; // default trim chars
$pattern = "(".implode("|", array_map('preg_quote', $words)).")\b";
$str = trim(preg_replace('~'.$pattern.'$~i', '', preg_replace('~^'.$pattern.'~i', '', trim($what, $char_list))), $char_list);
return $str;
}
// for example:
$trim_list = array('AND', 'OR');
$what = ' OR x = 1 AND b = 2 AND ';
print_r(trim_words($what, $trim_list)); // => "x = 1 AND b = 2"
$what = ' ORDER BY x DESC, b ASC, ';
print_r(trim_words($what, $trim_list, ',')); // => "ORDER BY x DESC, b ASC"
?>
그 코드는 나에게 잘 작동한다.
$str = substr($str ,-(strlen($str)-1));
아마도, 대답으로 기고해 주세요.
언급URL : https://stackoverflow.com/questions/4638569/how-to-remove-the-leading-character-from-a-string
'programing' 카테고리의 다른 글
Panda는 시리즈/데이터프레임 컬럼을 조건부 생성 (0) | 2022.09.30 |
---|---|
뷰 라우터를 통해 로드된 컴포넌트에 Vue.js 스코프 스타일을 적용하는 방법 (0) | 2022.09.30 |
업데이트된 열 값을 수동으로 수정할 때 HeidiSQL Before Update 트리거 오류 발생 (0) | 2022.09.30 |
MariaDB SELECT가 다른 트랜잭션이 완료될 때까지 대기하도록 합니다. (0) | 2022.09.28 |
python 예외 메시지 캡처 (0) | 2022.09.28 |