"Simple HTML DOM"을 기반으로 스크립트 작업을하고 있는데 URL의 내부 텍스트를 가져온 후 문자열의 charset을 검색하여 "UTF -8 "을 입력하십시오.
많은 것을 시도했지만 그 중 Windows-1256
과 작동하지 않습니다.
내가 무엇을 시도했다 : - 오류를 제공 Windows-1256
mb_detect_encoding($content, "windows-1256")
UTF-8
로
PHP (UTF-8 또는 Windows-1256)에서 문자열의 문자 세트를 감지합니다.
mb_detect_encoding($content)
감지 Illegal argument
function is_utf8($string) {
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs', $string);
}
이 기능은 "0"으로하지 않을 경우 UTF-8 만 문자열 인 경우 반환 UTF- 8 "페이지를 찾을 수 없습니다."를 반환합니다. 왜 그런지 모르겠다!
내 코드입니다 : 내가 함께 일하고 있어요
$html = file_get_html($url);
foreach($html->find('div[id=content]') as $element) {
$content = $element->innertext;
#Detect charset encoding of $content
}
의 URL :
UTF-8 : http://www.masrawy.com/news/Egypt/Politics/2013/March/3/5541050.aspx
Windws-1256 : 당신이
function is_utf8($string) {
return (mb_detect_encoding($string, 'UTF-8', true) == 'UTF-8');
}
를 사용하여 시도 http://www.youm7.com//News.asp?NewsID=965545
이 작동 여부를 묻지 않은 것처럼 보입니다. 그래서 나는 그것을 테스트하고 작동합니다. 나도 같은 경우에 페이지가 windows1256 또는 UT-8입니다. 이것은 함수를 호출하고 다른 변환 함수 utf8()을 적용하는 방법입니다. 'if (! is_utf8 ($ t2)) echo $ t2 = utf8 ($ t2). "
"; else echo $ t2. "
";' –