

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>変なヤバいもんログ &#187; PHP</title>
	<atom:link href="http://ecpplus.net/weblog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://ecpplus.net/weblog</link>
	<description>平日プログラミング休日ツーリング</description>
	<lastBuildDate>Sat, 03 Dec 2011 16:17:32 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHPで可変長の引数を扱う</title>
		<link>http://ecpplus.net/weblog/php%e3%81%a7%e5%8f%af%e5%a4%89%e9%95%b7%e3%81%ae%e5%bc%95%e6%95%b0%e3%82%92%e6%89%b1%e3%81%86/</link>
		<comments>http://ecpplus.net/weblog/php%e3%81%a7%e5%8f%af%e5%a4%89%e9%95%b7%e3%81%ae%e5%bc%95%e6%95%b0%e3%82%92%e6%89%b1%e3%81%86/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 16:28:33 +0000</pubDate>
		<dc:creator>ちゅう</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://ecpplus.net/weblog/archives/445</guid>
		<description><![CDATA[　PHPで可変長の引数を渡したいときは、 call_user_func_array という関数を使う。可変長の変数を配列に入れて、第1引数に文字列で関数名を書いて、第2引数に可変長の引数を渡す。 例えば、sprintf みたいな書き方でエスケープした文字列を作る関数を定義してみると、以下のように書く。 // パラメータをエスケープするための処理。(MySQLにつないでからじゃないと使えない) function escape_query&#40;$condition_ary&#41; &#123; _db_connect&#40;&#41;; // フォーマットを取得(第1引数) $format = array_shift&#40;$condition_ary&#41;; &#160; // 第2引数以降が、エスケープすべき値 $escaped_value_ary = array&#40;&#41;; foreach&#40;$condition_ary as $_val&#41; &#123; $_escaped_val = mysql_real_escape_string&#40;$_val&#41;; array_push&#40;$escaped_value_ary, $_escaped_val&#41;; &#125; &#160; array_unshift&#40;$escaped_value_ary, $format&#41;; &#160; return call_user_func_array&#40;'sprintf', $escaped_value_ary&#41;; &#125; &#160; //呼ぶとき Railsぽく $conditions = array&#40;&#34;select * from fruits where color = '%s' and name [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://ecpplus.net/weblog/php%e3%81%a7%e5%8f%af%e5%a4%89%e9%95%b7%e3%81%ae%e5%bc%95%e6%95%b0%e3%82%92%e6%89%b1%e3%81%86/' addthis:title='PHPで可変長の引数を扱う '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>　PHPで可変長の引数を渡したいときは、 call_user_func_array という関数を使う。可変長の変数を配列に入れて、第1引数に文字列で関数名を書いて、第2引数に可変長の引数を渡す。</p>
<p>例えば、sprintf みたいな書き方でエスケープした文字列を作る関数を定義してみると、以下のように書く。</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// パラメータをエスケープするための処理。(MySQLにつないでからじゃないと使えない)</span>
<span style="color: #000000; font-weight: bold;">function</span> escape_query<span style="color: #009900;">&#40;</span><span style="color: #000088;">$condition_ary</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    _db_connect<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #666666; font-style: italic;">// フォーマットを取得(第1引数)</span>
    <span style="color: #000088;">$format</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_shift</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$condition_ary</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// 第2引数以降が、エスケープすべき値</span>
    <span style="color: #000088;">$escaped_value_ary</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$condition_ary</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$_val</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$_escaped_val</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_val</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #990000;">array_push</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$escaped_value_ary</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_escaped_val</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #990000;">array_unshift</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$escaped_value_ary</span><span style="color: #339933;">,</span> <span style="color: #000088;">$format</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">call_user_func_array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'sprintf'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$escaped_value_ary</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//呼ぶとき Railsぽく</span>
<span style="color: #000088;">$conditions</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;select * from fruits where color = '<span style="color: #009933; font-weight: bold;">%s</span>' and name = '<span style="color: #009933; font-weight: bold;">%s</span>'&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'color'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$escaped_str</span> <span style="color: #339933;">=</span> escape_query<span style="color: #009900;">&#40;</span><span style="color: #000088;">$conditions</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<div class="addthis_toolbox addthis_default_style " addthis:url='http://ecpplus.net/weblog/php%e3%81%a7%e5%8f%af%e5%a4%89%e9%95%b7%e3%81%ae%e5%bc%95%e6%95%b0%e3%82%92%e6%89%b1%e3%81%86/' addthis:title='PHPで可変長の引数を扱う '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://ecpplus.net/weblog/php%e3%81%a7%e5%8f%af%e5%a4%89%e9%95%b7%e3%81%ae%e5%bc%95%e6%95%b0%e3%82%92%e6%89%b1%e3%81%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Akelosのmigration</title>
		<link>http://ecpplus.net/weblog/akelos%e3%81%aemigration/</link>
		<comments>http://ecpplus.net/weblog/akelos%e3%81%aemigration/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 16:28:49 +0000</pubDate>
		<dc:creator>ちゅう</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://ecpplus.net/weblog/?p=435</guid>
		<description><![CDATA[PHP の RailsコピーのAkelosを触ってる。まだVersin0.8だけど、良さそうなので使ってみたい。CakePHPはRailsコピーかと思ったら全然違ったので使うのやめた。 migration $ php script/generate model Book 上記のコマンドで、Bookモデルが作られる。そうすると、migrateファイルにあたるものが app/installers/book_installesr.php に出来る。デフォルトだと以下のような形になって、バージョンUPとDOWNに対応した処理を書くようになっている。 &#60; ?php class DrinkInstaller extends AkInstaller &#123; function up_1&#40;&#41; &#123; $this-&#62;createTable&#40;'drinks', &#34; id, name &#34;&#41;; &#125; &#160; function down_1&#40;&#41; &#123; $this-&#62;dropTable&#40;'drinks'&#41;; &#125; &#125; ?&#62; createTableの第一引数がテーブル名、第二引数がテーブルの中身になる。第二引数は、カンマでカラム名を区切っていく。型を指定しないと、自動的に最適な型にしてくれるということだが、怪しいので指定したほうが良さそう。以下のように書く。 $this-&#62;createTable&#40;'drinks', &#34; id, name varchar(255), descrption text, isbn varchar(20) not null &#34;&#41;; これをDBに反映させるには script/migrate book install と書く。install をやると [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://ecpplus.net/weblog/akelos%e3%81%aemigration/' addthis:title='Akelosのmigration '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>PHP の RailsコピーのAkelosを触ってる。まだVersin0.8だけど、良さそうなので使ってみたい。CakePHPはRailsコピーかと思ったら全然違ったので使うのやめた。</p>
<h3>migration</h3>
<pre>$ php script/generate model Book</pre>
<p>上記のコマンドで、Bookモデルが作られる。そうすると、migrateファイルにあたるものが app/installers/book_installesr.php に出来る。デフォルトだと以下のような形になって、バージョンUPとDOWNに対応した処理を書くようになっている。</p>

<div class="wp_syntax"><div class="code"><pre class="php-brief" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #000000; font-weight: bold;">class</span> DrinkInstaller <span style="color: #000000; font-weight: bold;">extends</span> AkInstaller
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> up_1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">createTable</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'drinks'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;
          id,
          name
        &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> down_1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dropTable</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'drinks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>createTableの第一引数がテーブル名、第二引数がテーブルの中身になる。第二引数は、カンマでカラム名を区切っていく。型を指定しないと、自動的に最適な型にしてくれるということだが、怪しいので指定したほうが良さそう。以下のように書く。</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">createTable</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'drinks'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;
          id,
          name varchar(255),
          descrption text,
          isbn varchar(20) not null
        &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>これをDBに反映させるには script/migrate book install と書く。install をやると up が順に実行され、 uninstall を実行すると down が実行される。</p>
<pre>chu@chu-mac:~/Sites/sample$ php script/migrate book install
Upgrading-----
(mysqlt): SET AUTOCOMMIT=0
-----
-----
(mysqlt): BEGIN
-----
-----
(mysqlt): SHOW COLUMNS FROM books
-----
1146: Table 'sample_dev.books' doesn't exist
ADOConnection._Execute(SHOW COLUMNS FROM books, false)% line  854, file: /Users/chu/Sites/akelos/vendor/adodb/adodb.inc.php
ADOConnection.Execute(SHOW COLUMNS FROM books)% line  393, file: /Users/chu/Sites/akelos/vendor/adodb/drivers/adodb-mysql.inc.php
ADODB_mysql.MetaColumns(books, true, false)% line  202, file: /Users/chu/Sites/akelos/vendor/adodb/adodb-datadict.inc.php
ADODB_DataDict.MetaColumns(books)% line  723, file: /Users/chu/Sites/akelos/vendor/adodb/adodb-datadict.inc.php
ADODB_DataDict.ChangeTableSQL(books, id I NOTNULL AUTO KEY,
name varchar(255),
desctipntion XL,
isbn varchar(20) NOTNULL,
updated_at T,
created_at T, Array[1])% line  279, file: /Users/chu/Sites/akelos/lib/AkInstaller.php
-----
(mysqlt): CREATE TABLE books (
id                       INTEGER NOT NULL AUTO_INCREMENT,
name                     VARCHAR(255),
desctipntion             LONGTEXT,
isbn                     VARCHAR(20) NOT NULL,
updated_at               DATETIME,
created_at               DATETIME,
                 PRIMARY KEY (id)
)TYPE=InnoDB
-----
-----
(mysqlt): COMMIT
-----
-----
(mysqlt): SET AUTOCOMMIT=1
-----
Smart Commit occurred</pre>
<p>途中にエラーっぽいメッセージがあるが、公式のScreenshot見てもこれが正常な動作のようだ。</p>
<p>ちなみに、以下のように書いておくと migration を uninstall した時にbooksテーブルがdropされます。Railsだと、デフォじゃテーブルやバージョン別のmigrationをサポートしてないからこれは結構便利かも。ただ、みんなで別々にやってたらどうなるのか。全部一気にやる方法がまだわからない。同じファイルに全部書いておけば問題はないと思うけど、要調査。</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">    <span style="color: #000000; font-weight: bold;">function</span> down_1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dropTable</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'books'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></div></div>

<div class="addthis_toolbox addthis_default_style " addthis:url='http://ecpplus.net/weblog/akelos%e3%81%aemigration/' addthis:title='Akelosのmigration '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://ecpplus.net/weblog/akelos%e3%81%aemigration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPのファイルアップロード上限を変える。</title>
		<link>http://ecpplus.net/weblog/php%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89%e4%b8%8a%e9%99%90%e3%82%92%e5%a4%89%e3%81%88%e3%82%8b%e3%80%82/</link>
		<comments>http://ecpplus.net/weblog/php%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89%e4%b8%8a%e9%99%90%e3%82%92%e5%a4%89%e3%81%88%e3%82%8b%e3%80%82/#comments</comments>
		<pubDate>Tue, 16 Jan 2007 16:05:51 +0000</pubDate>
		<dc:creator>ちゅう</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://ecpplus.net/weblog/20070117010551</guid>
		<description><![CDATA[　php.ini で以下の項目を編集 memory_limit post_max_size upload_max_filesize の値を変更する。どうやら、memory_limit > post_max_size > upload_max_filesize のようにしないと、うまく働いてくれないようだ。<div class="addthis_toolbox addthis_default_style " addthis:url='http://ecpplus.net/weblog/php%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89%e4%b8%8a%e9%99%90%e3%82%92%e5%a4%89%e3%81%88%e3%82%8b%e3%80%82/' addthis:title='PHPのファイルアップロード上限を変える。 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>　php.ini で以下の項目を編集</p>
<ul>
<li>memory_limit</li>
<li>post_max_size </li>
<li>upload_max_filesize</li>
</ul>
<p>の値を変更する。どうやら、memory_limit > post_max_size > upload_max_filesize のようにしないと、うまく働いてくれないようだ。</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://ecpplus.net/weblog/php%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89%e4%b8%8a%e9%99%90%e3%82%92%e5%a4%89%e3%81%88%e3%82%8b%e3%80%82/' addthis:title='PHPのファイルアップロード上限を変える。 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://ecpplus.net/weblog/php%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89%e4%b8%8a%e9%99%90%e3%82%92%e5%a4%89%e3%81%88%e3%82%8b%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP5ではデフォルトの時間設定が必要</title>
		<link>http://ecpplus.net/weblog/php5%e3%81%a7%e3%81%af%e3%83%87%e3%83%95%e3%82%a9%e3%83%ab%e3%83%88%e3%81%ae%e6%99%82%e9%96%93%e8%a8%ad%e5%ae%9a%e3%81%8c%e5%bf%85%e8%a6%81/</link>
		<comments>http://ecpplus.net/weblog/php5%e3%81%a7%e3%81%af%e3%83%87%e3%83%95%e3%82%a9%e3%83%ab%e3%83%88%e3%81%ae%e6%99%82%e9%96%93%e8%a8%ad%e5%ae%9a%e3%81%8c%e5%bf%85%e8%a6%81/#comments</comments>
		<pubDate>Tue, 18 Jul 2006 14:58:16 +0000</pubDate>
		<dc:creator>ちゅう</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://ecpplus.net/weblog/20060718235816</guid>
		<description><![CDATA[Strict Standards: date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier PHP5で date()関数を使おうとしたら、上のようなエラーが出た。php.ini で date.timezone = [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://ecpplus.net/weblog/php5%e3%81%a7%e3%81%af%e3%83%87%e3%83%95%e3%82%a9%e3%83%ab%e3%83%88%e3%81%ae%e6%99%82%e9%96%93%e8%a8%ad%e5%ae%9a%e3%81%8c%e5%bf%85%e8%a6%81/' addthis:title='PHP5ではデフォルトの時間設定が必要 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p><code>Strict Standards: date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier<br />
</code></p>
<p>PHP5で date()関数を使おうとしたら、上のようなエラーが出た。<strong>php.ini</strong> で <code>date.timezone = Asia/Tokyo</code> （日本の場合）としなきゃいけないっぽい。したら、Webサーバーを再起動すればおk</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://ecpplus.net/weblog/php5%e3%81%a7%e3%81%af%e3%83%87%e3%83%95%e3%82%a9%e3%83%ab%e3%83%88%e3%81%ae%e6%99%82%e9%96%93%e8%a8%ad%e5%ae%9a%e3%81%8c%e5%bf%85%e8%a6%81/' addthis:title='PHP5ではデフォルトの時間設定が必要 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://ecpplus.net/weblog/php5%e3%81%a7%e3%81%af%e3%83%87%e3%83%95%e3%82%a9%e3%83%ab%e3%83%88%e3%81%ae%e6%99%82%e9%96%93%e8%a8%ad%e5%ae%9a%e3%81%8c%e5%bf%85%e8%a6%81/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP実行時間が長すぎて･･･</title>
		<link>http://ecpplus.net/weblog/php_max_execution_time/</link>
		<comments>http://ecpplus.net/weblog/php_max_execution_time/#comments</comments>
		<pubDate>Mon, 03 Oct 2005 12:31:00 +0000</pubDate>
		<dc:creator>ちゅう</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://ecpplus.net/weblog/20051003213100</guid>
		<description><![CDATA[120回近くループさせてたら怒られた(´・ω・`) Fatal error: Maximum execution time of 30 seconds exceeded PHPはデフォルトだと、30秒以上スクリプト実行してると強制終了されてしまうみたい。 php.ini の max_execution_time を延ばすか、set_time_limit( int seconds ) をスクリプト内に記述するしかないとか。 amazon への SOAP リクエストが毎秒1コールに制限されているので、sleep(1); をスクリプト内に記述してるんだが、1コールで10件までしか検索結果を呼び出せないので、ループさせてキーワードに対応するデータをとってきてDBに落としてみる。一般的な単語だと、検索結果が100ページを越すので、最低でも100秒かかっちゃうので、 set_time_limit(300); と記述したらうまくいった。ほんとにダメなスクリプト書いちゃったときに max_exection_time を増やしてたらなんか怖いのでデフォルトの30秒のままにしといた。 EDEN600MHz サーバいつ公開できるかなぁ。 120ページの約1200件のデータは、EDENﾀｿにとって5分で処理するには多すぎたみたいorz 30分くらいにして夜中cron で実行させるかな･･･<div class="addthis_toolbox addthis_default_style " addthis:url='http://ecpplus.net/weblog/php_max_execution_time/' addthis:title='PHP実行時間が長すぎて･･･ '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>120回近くループさせてたら怒られた(´・ω・`)</p>
<p><strong>Fatal error: Maximum execution time of 30 seconds exceeded</strong></p>
<p>PHPはデフォルトだと、30秒以上スクリプト実行してると強制終了されてしまうみたい。</p>
<p>php.ini の max_execution_time を延ばすか、set_time_limit( int seconds ) をスクリプト内に記述するしかないとか。</p>
<p>amazon への SOAP リクエストが毎秒1コールに制限されているので、sleep(1); をスクリプト内に記述してるんだが、1コールで10件までしか検索結果を呼び出せないので、ループさせてキーワードに対応するデータをとってきてDBに落としてみる。一般的な単語だと、検索結果が100ページを越すので、最低でも100秒かかっちゃうので、 set_time_limit(300); と記述したらうまくいった。ほんとにダメなスクリプト書いちゃったときに max_exection_time を増やしてたらなんか怖いのでデフォルトの30秒のままにしといた。</p>
<p>EDEN600MHz サーバいつ公開できるかなぁ。</p>
<p><span id="more-249"></span></p>
<p>120ページの約1200件のデータは、EDENﾀｿにとって5分で処理するには多すぎたみたいorz 30分くらいにして夜中cron で実行させるかな･･･</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://ecpplus.net/weblog/php_max_execution_time/' addthis:title='PHP実行時間が長すぎて･･･ '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://ecpplus.net/weblog/php_max_execution_time/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

