2010-06-25 4 views
3

나는 내 사이트 맵과 사이트 맵 인덱스를 동적으로 생성하는 함수를 작성 중이다.PHP로 UTF8 인코딩으로 파일 작성하기

sitemap.org의 문서에 따르면 파일은 UTF-8로 인코딩되어야합니다.

의 라인을 따라 비교적 단순 하나, 뭔가 파일입니다 작성에 대한 나의 기능

:

function generateFile() 
{ 
    $xml = create_xml(); 
    $fp = @fopen('sitemap', 'w'); 
    fwrite($fp, $xml); 
    fclose($fp); 
} 

[편집은 - 주석 이후에 추가]

create_xml는()와 같은 단순한입니다 그래서 :

function create_xml() 
{ 
return '<?xml version='1.0' encoding='UTF-8'?> 
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 
       http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> 
    <url> 
     <loc>http://example.com/</loc> 
     <lastmod>2006-11-18</lastmod> 
     <changefreq>daily</changefreq> 
     <priority>0.8</priority> 
    </url> 
</urlset>'; 
} 

특히 파일이 UTF-8로 인코딩되었는지 확인해야합니까?

또한 파일 압축을 풀지 않고 gzip을 사용하고 싶습니다. 파일을 디스크에 저장 한 후 압축하는 방법을 알고 있습니다. 디스크에 쓰 기 전에 파일을 압축 할 수 있는지 알고 싶습니다 (어떻게?).

+0

현재 어떤 인코딩을 사용하십니까? 확실하지 않으면 의무적으로 읽어야합니다. http://www.joelonsoftware.com/articles/Unicode.html – Kornel

+0

Gzip은 관련없는 질문입니다. 그것을 별도의 게시물로 옮길 수 있습니까? – Kornel

답변

0

예, 당신이 당신의 내용이 (create_xml()의 출력이 UTF-8로 인코딩되어 있는지 확인해야합니다.이를 보장하려면, 당신은 XML 파일 <?xml version="1.0" encoding="UTF-8"?>을 지정 있는지 확인해야합니다. utf8_encode()를 사용할 수 있습니다. 그리고 나는 좋을 것 'wb' 모드에서 fopen에, 바이너리를 의미 b는. 이것은 그대로 데이터가 정확하게 기록됩니다 보장합니다.

+1

'utf8_encode()'는 마술처럼 문자열 UTF-8을 만들지 않는다는 것을 명심하십시오. ISO-8859-1에서 UTF-8로 인코딩을 변환합니다. 다른 인코딩과 함께 사용하면 UTF-8과 유사하지만 무언가를 줄 수 있습니다. – Kornel

0

귀하의 PHP 스크립트 파일이 UTF-8로 저장해야합니다. 또한

, 그것은 말하기 어렵다 무엇을 보지 않고 더 create_xml() 않습니다

0

ASCII 문자 만 사용하는 경우 파일은 항상 UTF-8이됩니다.