trim_all()와 원하지 않는 문자를 제거 후 또는 특정 문자/기호/숫자 전의 경우는 어떤 조건 검색 알고리즘을 positive_lookbehind은 볼 - PHP :
규정
이 기능은 는이 에 두 번째 인수로 제공 그러한 문자 트림을 문자열의 시작과 끝에서 원하지 않는 문자를 제거하지 않으며, 경우에 트림 PHP의 내장 함수에서 영감을받은, 공백 문자를 제거 이 목록에
그래서 trim_all() 의 기능은 무엇입니까?
trim_all() 은 문자열의 양쪽 끝에서 공백의 모든 인스턴스를 제거하고 문자열 안의 중복 된 공백 문자를 제거하기위한 것입니다. 그러나 나중에 필자는 화이트 스페이스 트리밍 및 클리닝보다 조금 더 많은 작업을 수행하는 범용 함수로 만들었으며 문자 교체 및 문자 교체를 허용했습니다. 이 기능을 수행 할 수 있습니다 : 그것은 모든 여러 \ r에가, \ n, \ (t)가, \ 연구 \ n \ 0에는 0x0B는 0x20에 모든 제어 문자가 될 수 있도록
는 화이트 스페이스를 정상화 단일 공백으로 대체되고 문자열의 양쪽 끝에서 트림됩니다.
모든 원하지 않는 문자를 제거하십시오.
중복 제거;
문자 또는 문자열로 여러 번 나타나는 문자를 바꿉니다. 당신이 사용자의 입력에서 원치 않는 문자를 제거 할 때
function trim_all($str , $what = NULL , $with = ' ')
{
if($what === NULL)
{
// Character Decimal Use
// "\0" 0 Null Character
// "\t" 9 Tab
// "\n" 10 New line
// "\x0B" 11 Vertical Tab
// "\r" 13 New Line in Mac
// " " 32 Space
$what = "\\x00-\\x20"; //all white-spaces and control chars
}
return trim(preg_replace("/[".$what."]+/" , $with , $str) , $what);
}
이 기능은 도움이 될 수 있습니다. 사용 방법이 나와 있습니다.
사용 예 :
$full_name = trim_all($_POST['full_name']);
또는
$full_name = trim_all($full_name , "\t" , "");
문제는 또한 비 제외 어 검색을 일치하는 솔루션을하지 않기 때문에 나는 단지 모든 행을 제거 할 방법입니다 제목 태그 안에서 나눕니다. preg_replace ('/ title = "(. *)"/ ",' ', $ s); 모든 것을 완전히 제거합니다 ... 죄송합니다. 그러나 저는이 기능을 실제로 사용하지 않았고 난감했습니다. – tan
문자 그대로 이야기합시다. 당신은 regexp에게 말해야한다 : 모든 br 태그는 제거하고 title = "and before"뒤에 오는 thos는 제거하십시오. 이제 당신은 두뇌가 이것을 해결하도록 강요해야합니다. 쉽습니다. 내가 그것을 발견하게해라. 그러면 나는 그것을 게시 할 것이다 –
그래, 그것은 쉽게 들린다. 지금 몇 시간 씩 노력하고 있지만 끝내지는 마세요. 내가 예를 들어 주시겠습니까? 예를 들어, – tan