2017-06-03 10 views
0

私はこのPHP関数file_get_contents()でデータを取得しているxmlファイルを持っています。XMLファイルの内容をテキストエリアに置き換えてPHP:文字の置換を取り除きます

私の意図は、このXMLファイル用のエディタを提供することであり、そのXMLの内容の文字列がテキストエリアにロードされ(必要な場合)、その後、編集、およびfile_put_contents()

PHPが返す文字列で保存されている置換文字が含まれています( )。これを削除するか、これに対してより良い解決策を見つけるにはどうすればよいですか?

私のxmlファイルは次のようになります。

<?xml version="1.0"?> 
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<RECORD> 
    <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> 
    <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> 
    <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> 
    <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> 

、それはこのよう取り出されます:

iconv("UTF-16", "UTF-8", $content); 

<�?xml version="1.0"?> 
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<RECORD> 
    <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> 
    <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> 
    <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> 
    <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> 
+1

実際にISO-8859-1のXMLのようですが、UTF-8で保存してもう一度確認できますか? – Anton

+0

アントン、ちょうどそれをやったと働いた...問題は、私はこのファイルをUnicodeとして使用する必要があり、私によって生成されていない...任意のPHP関数は、返された文字列をUnicodeに変換する? –

+0

元のファイルのエンコーディングは、実際にはUTF-16です... –

答えて

0

私は、この関数(http://php.net/manual/pt_BR/function.iconv.php)で解決策を見つけました$contentは、XMLファイルからのデータの返り文字列です。 エンコーディングがUTF-16だったので、UTF-8に変換したところ、うまくいきました。

ありがとうございます。

**重要**

ただ、元のエンコードに戻ってそれを変換するために覚えて、その内容を保存:そうでなければ、あなたのアプリケーションの中国読み終わるだろう

iconv('UTF-8', 'UTF-16', $content); 

を、次回あなたはそれをロード! :)

関連する問題