문자열에서 모든 단어를 배열로 추출하려고하는데 공백 (
)에 문제가 있습니다.PHP에서 문자열에서 단어를 추출하는 중 문제가 발생했습니다.
//Clean data to text only
$data = strip_tags($data);
$data = htmlentities($data, ENT_QUOTES, 'UTF-8');
$data = html_entity_decode($data, ENT_QUOTES, 'UTF-8');
$data = htmlspecialchars_decode($data);
$data = mb_strtolower($data, 'UTF-8');
//Clean up text from special chrs I don't want as words
$data = str_replace(',', '', $data);
$data = str_replace('.', '', $data);
$data = str_replace(':', '', $data);
$data = str_replace(';', '', $data);
$data = str_replace('*', '', $data);
$data = str_replace('?', '', $data);
$data = str_replace('!', '', $data);
$data = str_replace('-', ' ', $data);
$data = str_replace("\n", ' ', $data);
$data = str_replace("\r", ' ', $data);
$data = str_replace("\t", ' ', $data);
$data = str_replace("\0", ' ', $data);
$data = str_replace("\x0B", ' ', $data);
$data = str_replace(" ", ' ', $data);
//Clean up duplicated spaces
do {
$data = str_replace(' ', ' ', $data);
} while(strpos($data, ' ') !== false);
//Make array
$clean_data = explode(' ', $data);
echo "<pre>";
var_dump($clean_data);
echo "</pre>";
이 출력 :
array(58) {
[0]=>
string(5) " "
[1]=>
string(5) " "
[2]=>
string(11) "anläggning"
[3]=>
string(3) "med"
[4]=>
string(3) "den"
[5]=>
string(10) "erfarenhet"
[6]=>
string(3) "som"
}
가 나는 제 2 개 배열 값
것을 알 출력 소스를 선택하면
이것은 I하는 일이다.
아무리 시도해도 문자열에서이를 제거 할 수 없습니다. 어떤 아이디어? 내가 관리 코드를 일부 조정 후
출력 다음 얻을 :
UPDATE가
array(56) {
[0]=>
string(1) "�" //Notice change. Instead of string length 5 it now says 1. But still its garbage.
[1]=>
string(1) "�"
[2]=>
string(11) "anläggning"
[3]=>
string(3) "med"
[4]=>
string(3) "den"
[5]=>
string(10) "erfarenhet"
[6]=>
string(3) "som"
[7]=>
string(5) "finns"
[8]=>
string(4) "inom"
감사합니다! (게으른 사람을위한)
답변 :
심지어 네가이 문제에 대한 약간 다른 접근 방식이다, 나는 (남은
및 기타 추가 이상한처럼 위에서했던 문제가 있었다 이유는 정말 응답하지 않는다 공백), 나는 그것을 좋아하고 내 원래 코드보다 훨씬 낫다.
누구에게 감사드립니다!
//Clean data to text only
$data = strip_tags($data);
$data = html_entity_decode($data, ENT_QUOTES, 'UTF-8');
$data = htmlspecialchars_decode($data);
$data = mb_strtolower($data, 'UTF-8');
//Clean up text from special chrs
$data = str_replace(array("-"), ' ', $data);
$clean_data = str_word_count($data, 1, 'äöå');
echo "<pre>";
var_dump($clean_data);
echo "</pre>";
하면 실제 데이터가 (위해서 var_dump에 의해 생성뿐만 아니라 출력) 포함되어 있는지? – JohnSmith
누군가 약 6 줄에서 똑같은 일을하는 버전을 게시 할 것입니다. – thirtydot
JohnSmith : 예. echo $ data [0] 또는 echo $ data [1]을 수행하면 동일하게됩니다. – jamietelin