忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2024/11/23 02:23 |
Symfony1.2 10日目その4
前回の続き。

チュートリアルには全く載っていない問題点を修正します。


チュートリアル通りに投稿フォームを作成し、日本語で記事を投稿した場合、以下のNoticeが発生します。

>Notice: iconv() [function.iconv]: Detected an illegal character in input string in symfony/lib/Jobeet.class.php on line 17

何処かというとslugifyやってるこの行です。
/lib/Jobeet.class.php
1
2
<?php
    $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);

http://jp2.php.net/manual/ja/function.iconv.php
>文字列 //TRANSLIT を out_charset に追加すると、翻字機能が有効になります。これは、指定された文字集合で 表せない文字を、見た目の似ている別の文字に置き換える機能です。 文字列 //IGNORE を追加すると、指定された文字集合で 表せない文字は黙って切り捨てられます。 それ以外の場合は、str の中に変換できない文字が 出現した時点で変換が打ち切られ、E_NOTICE が発生します。

日本語をus-asciiに翻字できないよ、ということです。
日本語記事が投稿できないというのは非常に問題ですが、翻字しなければいいだけなので単純に//IGNOREを追加すれば解決します。
/lib/Jobeet.class.php
1
2
<?php
    $text = iconv('utf-8', 'us-ascii//TRANSLIT//IGNORE', $text);

問題点として、リンクのURLから日本語が一切消えて無くなってしまいますが、まあ日本語URLとか面倒なので消えてもいいや。

…あれ?
見た目をわかりやすくするためのURL変換だった筈なんだがその理念は何処行った?


そんな理念最初から無かったということで一つ。
PR


2010/11/05 21:23 | Comments(0) | TrackBack() | PHP

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<今週の実績 2010/11/07 | HOME | 買ったものリスト 2010/10/31>>
忍者ブログ[PR]