MENU

パラメータ付きURLがサニタイズ後に短縮URLとして出力される・・・

  • URLをコピーしました!

昨日設定した「最新のRSS記事をtwitterへ自動投稿するPHPスクリプト(「記事:RSSからtwitterへ自動投稿するPHPスクリプト)なんだが、
記事のURLがパラメータ付きの場合、(例:?p=268) 「=」がサイニタイズされて、
「%3D」となり例で言えば「?p%3D268」が短縮URLとして出力される・・・

当然そうなると、写真1の修正前URL「http://tinyurl.com/4rgvsjb」を叩くと、
「http://pic.ph.cmix.info/?p%3D267」にアクセスし、写真2のように正しく表示されない・・・

とにかくこのままじゃまずいので修正!

修正後、写真1の修正後「http://tinyurl.com/4rncdur」で写真3の「http://pic.ph.cmix.info/?p=268」にアクセス成功!

どーやったかと言えば、PHPスクリプトの「simplepie.php」にあるサニタイズ部分
「function replace_invalid_with_pct_encoding($string, $valid_chars, $case = SIMPLEPIE_SAME_CASE)」
が問題なんだが・・・・・・

もうめんどくさいので、「twitter.class.php」に
「str_replace(‘%3D’, ‘=’, $item->get_permalink())」を追加して問題箇所に対応^^)

てか!

寝る時間を削ってしまったwww

tw
写真1:http://twitter.com/#!/masa_zxr

tw_view1
写真2:修正前の短縮URLアンカー先

tw_view2
写真3:修正後の短縮URLアンカー先

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次