1. filesize() 함수가 잘못된 값을 반환합니다.
curl을 사용하여 페이지를 로컬로 다운로드하는 경우 다운로드한 임시 파일 tmpHtml.txt의 내용을 버퍼로 읽어야 합니다. fread()를 사용하여 읽으므로 읽을 크기를 전달해야 하므로 먼저 filesize('./tmpHtml.txt')를 사용하여 임시 파일 크기를 가져옵니다. 이상한 점은 얻은 임시 파일의 크기가 올바르지 않다는 것입니다. filesize()를 호출한 후 하드 디스크에서 파일을 수동으로 검색하기 위해 중단점을 설정했습니다. .
php.net에서 filesize를 검색하면 함수 설명에서 다음 문장을 볼 수 있습니다. 참고: 이 함수의 결과는 캐시됩니다. 자세한 내용은 Clearstatcache()를 참조하세요.
clearstatcache()를 다시 찾아보니 이유가 있었습니다.
PHP는 더 빠른 성능을 제공하기 위해 이러한(쿼리를 위해 함수 테이블이 제공됨) 함수의 반환 정보를 캐시합니다. 그러나 경우에 따라 캐시된 정보를 지우고 싶을 수도 있습니다. 예를 들어 스크립트에서 동일한 파일을 여러 번 확인했는데 스크립트 실행 중에 해당 파일이 삭제되거나 수정될 위험이 있는 경우 파일 상태 캐시를 지워야 합니다. 이 경우, cleanstatcache() 함수를 사용하여 PHP가 캐시한 파일 정보를 지울 수 있습니다.
2. UTF-8로 인코딩된 PHP 스크립트에서 GBK로 인코딩된 중국어 웹 콘텐츠의 패턴을 일치시킬 때 중국어를 일치시키는 방법.
어제 개발에서는 GBK로 인코딩된 문자열 'Apple'이 포함된 콘텐츠를 일치시켜야 했기 때문에 다음 코드를 작성했습니다.
코드 복사 코드는 다음과 같습니다.
$pat = '//'
$pat = iconv('UTF-8', 'GB2312'; , $pat) ;
$ret = preg_match_all($pat, $contents, $matches);
코드 복사 코드는 다음과 같습니다.
$pat = '//';$contenst = iconv('GB2312', 'UTF-8', $contents)
$ret = preg_match_all($pat, $contents, $matches); 🎜>
그래서 일치합니다. 그러나 나는 그것을 알아낼 수 없으며 사기가 연루된 것으로 의심됩니다.