スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
トラックバック
トラックバック送信先 :
コメント

phpでunserializeがfalseを返す場合の対処方法(solr)

solrを使っていて検索結果をphps(phpのシリアライズ形式)で取ってきているのですが、
たまにデータを元に戻せずfalseになってしまうことがありました。

そんなときに下のプログラムで改行とか長さとかを調整して対応しました。


結局うまくいかない状況が発生したのでwt=phpとしてevalでエバりました。
うまくシリアライズできなかったのですが、この本によると
Apache Solr入門 ―オープンソース全文検索エンジンApache Solr入門 ―オープンソース全文検索エンジン
(2010/02/20)
関口 宏司三部 靖夫

商品詳細を見る

原因はjettyのバグらしいです。https://issues.apache.org/jira/browse/SOLR-1489
tomcatを使えばこの問題は起きないとのことです。
evalを使った場合セキュリティ的に気をつける必要がありそうですが、
時間があまりなかったのでこの方法で済ませました。


同じ会社から新しい本が出ていたのでそれもご紹介しておきます。

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)






function mb_unserialize($serial_str) {
$serial_str= preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str );
$serial_str= str_replace("\r", "", $serial_str);
//$serial_str= str_replace("\n", "", $serial_str);
return unserialize($serial_str);
}

function process(&$serial_tx) {
$tx=unserialize($serial_tx);
if ($tx===false) {
$this->db->log('attempting alternate unserialize');
$tx=$this->mb_unserialize($serial_tx);
if ($tx===false) {
$this->db->log('returned false again');
$rx='Unserialization error';
}
else
$this->db->log('alternate unserialize successful!');
}
}

スポンサーサイト
トラックバック
トラックバック送信先 :
コメント

Google PageSpeed 高速化

あなたのサイト(Wordpress, ECCUBE, ZenCartなど)を5千円で高速化します!

Google PageSpeed Insightsでwebサイトの速度が点数になって表示されています。この得点はSEOに関連が深く検索順位にも影響します。

プロフィール

すんぺ(sunpe)/篠原進吾(Shingo Shinohara)

Author:すんぺ(sunpe)/篠原進吾(Shingo Shinohara)
毎日!暇です!

注意 *割り箸の折った方はささくれてて痛いので危険です。

Hi! Welcome to my blog!

クラウドソーシングで働いています。
sunpe(ランサーズ)
sunpe(クラウドワークス)
Shingo S.(Elance)
Shingo S.(Upwork Odesk)

楽天

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

twitter

検索フォーム

RSSリンクの表示

リンク

ブロとも申請フォーム

QRコード

QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。