忍者ブログ
[PR]
×

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



2017/08/24 04:28 |
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(1) | PHP

トラックバック

トラックバックURL:
前回の続き。 とりあえず1.4にバージョンアップした。 http://www.symfony-project.org/tutorial/1_4/ja/upgrade フォームのテストを行います。 http://www.symfony-project.org/jobeet/1_4/Doctrine/ja/11 のっけから疎結合が云々よくわからないことを言ってますがどうせ使うことはないのでいいです。 Symfonyの部品を使うくらいならZFを使った方が楽でしょう。 まあsf...
弱小PHPerの憂鬱 | 2010/12/17 22:55

コメント

コメントを投稿する






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



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