<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>2010/06/22 on Yano&#39;s digital garage</title>
    <link>https://www.bravotouring.com/~yano/archives/2010/06/22/</link>
    <description>Recent content in 2010/06/22 on Yano&#39;s digital garage</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 22 Jun 2010 23:30:52 +0900</lastBuildDate>
    <atom:link href="https://www.bravotouring.com/~yano/archives/2010/06/22/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>原因はPCREの設定</title>
      <link>https://www.bravotouring.com/~yano/diary/it/20100622php5.htm</link>
      <pubDate>Tue, 22 Jun 2010 23:30:52 +0900</pubDate>
      <guid>https://www.bravotouring.com/~yano/diary/it/20100622php5.htm</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://rinn.e-site.jp/rnote/&#34;&gt;rNote&lt;/a&gt;の&lt;span class=&#34;Software&#34;&gt;PHP5&lt;/span&gt;対応。&lt;a href=&#34;https://www.bravotouring.com/~yano/diary/it/20100619php5.htm&#34;&gt;先日&lt;/a&gt;のトライで&lt;span class=&#34;Warning&#34;&gt;preg_match&lt;/span&gt;がカギを握っているところまで追い詰めたのだが、しつこくググったところ&lt;a href=&#34;http://blogs.yahoo.co.jp/wwzzwwzz1012/527035.html&#34;&gt;preg系関数 100Kを越える大きさの文字列を処理できない&lt;/a&gt;という話に辿り着いた。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://php.net/releases/5_2_0.php&#34;&gt;PHP 5.2.0&lt;/a&gt;で追加された設定だそうだが、pregが&lt;a href=&#34;http://www.php.net/manual/ja/book.pcre.php&#34;&gt;PCRE&lt;/a&gt;に繋がるとは思わなかったなぁ。&lt;/p&gt;&#xA;&lt;p&gt;早速&lt;span class=&#34;Path&#34;&gt;/etc/php5/apache2/php.ini&lt;/span&gt;を修正してPCREの上限を&lt;span class=&#34;Strong&#34;&gt;256KB&lt;/span&gt;に拡張したところ、&lt;a href=&#34;http://rinn.e-site.jp/rnote/&#34;&gt;rNote&lt;/a&gt;の再構築できるようになった。&lt;/p&gt;&#xA;&lt;p&gt;でも、&lt;a href=&#34;https://www.bravotouring.com/~yano/diary/it/20100619php5.htm&#34;&gt;こないだ&lt;/a&gt;弄った&lt;span class=&#34;Warning&#34;&gt;[[:space:]]&lt;/span&gt;を元通りに戻して&#xA;&lt;blockquote class=&#34;Log&#34;&gt;&#xA;function get_XMLTag($tag,&amp;$str){&lt;br/&gt;&#xA;  if(preg_match(&#34;/&lt;$tag.*?&gt;&lt;span class=&#34;Warning&#34;&gt;[[:space:]]&lt;/span&gt;*(.*)&lt;span class=&#34;Warning&#34;&gt;[[:space:]]&lt;/span&gt;*&lt;\/$tag&gt;/s&#34;,$str,$buf)) {&lt;br/&gt;&#xA;        return $buf[1];&lt;br/&gt;&#xA;    }&lt;br/&gt;    return &#39;&#39;;&lt;br/&gt;}&lt;/blockquote&gt;&#xA;試したみたところ&lt;span class=&#34;Warning&#34;&gt;194KBの記事だけNG&lt;/span&gt;だった。もしかして、と思って上限を&lt;span class=&#34;Strong&#34;&gt;512KB&lt;/span&gt;まで上げたら改善されたので、&lt;span class=&#34;Strong&#34;&gt;\s&lt;/span&gt;より&lt;span class=&#34;Warning&#34;&gt;[[:space:]]&lt;/span&gt;の方が&lt;span class=&#34;Strong&#34;&gt;無駄にメモリを喰う&lt;/span&gt;という事のようだ。&lt;/p&gt;&#xA;&lt;table align=&#34;right&#34; class=&#34;Landscape&#34;&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;img alt=&#34;あじさい(IMG_0107.JPG)&#34; src=&#34;https://www.bravotouring.com/~yano/images/2010/20100622.jpg&#34;/&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td class=&#34;PhotoMemo&#34;&gt;6/21 15:10 筥崎宮、あじさい苑にて&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;というわけで、&lt;span class=&#34;Path&#34;&gt;/etc/php5/apache2/php.ini&lt;/span&gt;は&lt;blockquote class=&#34;Log&#34;&gt;[Pcre]&lt;br/&gt;&#xA;;PCRE library backtracking limit.&lt;br/&gt;&#xA;;pcre.backtrack_limit=100000&lt;br/&gt;&#xA;&lt;span class=&#34;Topics&#34;&gt;pcre.backtrack_limit=512000&lt;/span&gt;&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;;PCRE library recursion limit.&lt;br/&gt;&#xA;;Please note that if you set this value to a high number you may consume all&lt;br/&gt;&#xA;;the available process stack and eventually crash PHP (due to reaching the&lt;br/&gt;&#xA;;stack size limit imposed by the Operating System).&lt;br/&gt;&#xA;;pcre.recursion_limit=100000&lt;br/&gt;&#xA;&lt;span class=&#34;Topics&#34;&gt;pcre.recursion_limit=512000&lt;/span&gt;&lt;/blockquote&gt;&#xA;と修正する事で、最終決着。&lt;/p&gt;&#xA;&lt;p&gt;&lt;span class=&#34;Path&#34;&gt;/etc/php5/apache2/php.ini&lt;/span&gt;を修正した後は、&lt;blockquote class=&#34;Log&#34;&gt;$ sudo /etc/init.d/apache2 restart&lt;/blockquote&gt;するのも忘れずに。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
