- ベストアンサー
BBSのエラー「eregi_replace」がうまくいかない
- BBSのカスタマイズでエラーが発生しています。特に「eregi_replace」の部分に問題があるようです。
- エラーが発生する原因は、テキストエンコーディングがutf-8の場合に起きるようです。
- 問題の部分を削除すると正常に動作するが、httpをリンクにしたいため困っています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 またまた、すいません、 下の文は違うサイトの回答と混ざってしまいました。 お詫びとして、回答します。(たしになららいかもしれませんが、PHPは、よく改造しますが・・・) shift-JISからテキストエンコーディングをutf-8 するときに文字化けしてませんか? 使えるサイトでよく、文字化けの報告があります。 http://www.shiftweb.net/material/Nucleus/nucleus1.html ↑みたいなサイトでよくあります。 私はプログラムには¥を良く使うので (例:オートリンク) function auto_link($str){ return eregi_replace("(https?|ftp)(://[[:alnum:]\S\+\$\?\.%,!#~*/:@&=_-]+)","<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$str); } ?が多いと見づらいです。(笑) ↑見たいな感じでよく使いますが・・・・ 私からの質問です。 プログラムのすべてが?なんですか?
その他の回答 (2)
- zikaku
- ベストアンサー率78% (69/88)
あ! utf-8でしたか? 間違いました。 私の勘違いでしたm(__)m
- zikaku
- ベストアンサー率78% (69/88)
え~と ”が、おかしいです。 >function Http($mess){ return eregi_replace("(https?|ftp|news)(://[[:alnum:]?S?+?$???.%,!#~*/:@&=_-]+)","<a 注意> <aの前にある”が href=?"??1??2?" target=?"_blank?">??1?? 注意> ?の後ろのある”で閉じてしまっています。 2</a>",$mess); } ですから、 function Http($mess){ return eregi_replace("(https?|ftp|news)(://[[:alnum:]?S?+?$???.%,!#~*/:@&=_-]+)","<a href=?'??1??2?' target=?'_blank?'>??1??2</a>",$mess); } ↑みたく href以降の”(4箇所)を’に変更すれば良いと思いますが・・・ 詳しいことは、プログラムを全部見ないと・・・ 分かりません。
お礼
プログラムがまだよくわからなかったので、zikaku様のfunction auto_link・・・をそのまま差し替えてみたら、問題なく動くようになりました。 何が原因だったのか把握できてませんが、?がおかしかったのかもしれませんね、、。 あ、チルダが変になることが多いので、もしかしたらMac OS Xだったからかも、、。 難しいですねぇ。もっと勉強してマスター目指します! 本当にありがとうございました。