<?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>PHP関数 &#8211; PHPプログラミングの教科書 [php1st.com]</title>
	<atom:link href="https://php1st.com/function/feed" rel="self" type="application/rss+xml" />
	<link>https://php1st.com</link>
	<description>気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。</description>
	<lastBuildDate>Mon, 30 Oct 2017 02:32:23 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>mb_send_mail関数でReturn-Pathを設定する方法</title>
		<link>https://php1st.com/2329</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Wed, 26 Oct 2016 07:48:20 +0000</pubDate>
				<category><![CDATA[PHP関数]]></category>
		<guid isPermaLink="false">https://php1st.com/?p=2329</guid>

					<description><![CDATA[PHPでメール送信に使うmb_send_mail関数で、エラーメールの宛先になる「Return-Path」を設定したいこともあります。 mb_send_mail関数では4番目のパラメータで追加ヘッダーを記述できます。送信 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>PHPでメール送信に使うmb_send_mail関数で、エラーメールの宛先になる「Return-Path」を設定したいこともあります。</p>
<p>mb_send_mail関数では4番目のパラメータで追加ヘッダーを記述できます。送信元のFromヘッダーなどに利用されているのでご存じかもしれませんが、同じようにReturn-Pathを設定してもうまくいかない場合があります。</p>
<p>その場合、<span class="stro">5番目のパラメータで -fオプションを使ってReturn-Pathを設定</span>すればうまくいきます。以下は記述例です。</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
&lt;?php
/* メール送信サンプル（Return-Path付） */
mb_send_mail(
    &quot;test@example.com&quot;, // 送信先
    &quot;テスト&quot;, // タイトル
    &quot;メール送信のテストです。&quot;, // 本文
    &quot;From:sender@example.com&quot;, // 送信元
    &quot;-f return@example.com&quot; // Return-Path
    );
?&gt;
</pre>
<p>送信先の「test@example.com」が存在しなかったりしてメールが送信できなかった場合、 -fオプションで指定したReturn-Pathの「return@example.com」にエラーメールが届きます。</p>
<div id="attachment_2331" style="width: 546px" class="wp-caption alignnone"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-2331" src="https://php1st.com/wp-content/uploads/2016/10/2016-10-26-16-42-19.jpg" alt="エラーメールの例" width="536" height="165" class="size-full wp-image-2331" srcset="https://php1st.com/wp-content/uploads/2016/10/2016-10-26-16-42-19.jpg 536w, https://php1st.com/wp-content/uploads/2016/10/2016-10-26-16-42-19-300x92.jpg 300w" sizes="(max-width: 536px) 100vw, 536px" /><p id="caption-attachment-2331" class="wp-caption-text">エラーメールの例</p></div>
<p>mb_send_mail関数について詳しくは、以下のページをご覧ください。<br />
[manual func=&#8221;mb_send_mail&#8221; one=&#8221;true&#8221;]</p>
<p>【参考にしたサイト】<br />
<a href="http://qiita.com/ao_love/items/9521fc1fcf55e5f1c397" target="_blank">mb_send_mailでReturn-Pathを設定してメール送信</a><br />
<a href="http://chibitcpu.blogspot.jp/2014/01/mbsendmailreturn-path5.html" target="_blank">mb_send_mail()するならReturn-Pathを第5引数に </a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>is_numeric関数とis_int関数の違い</title>
		<link>https://php1st.com/2306</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Tue, 25 Oct 2016 12:19:04 +0000</pubDate>
				<category><![CDATA[PHP関数]]></category>
		<guid isPermaLink="false">https://php1st.com/?p=2306</guid>

					<description><![CDATA[PHP関数のis_numericもis_intも指定値が数値かどうか調べる関数です。「123」や「100」など、整数かどうかのチェックでは同じように使えますが、フォーム入力値の数値チェックなどでは注意が必要です。 is_ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>PHP関数のis_numericもis_intも指定値が数値かどうか調べる関数です。「123」や「100」など、整数かどうかのチェックでは同じように使えますが、フォーム入力値の数値チェックなどでは注意が必要です。</p>
<h2>is_numericもis_intも整数のチェックには使える</h2>
<p>is_numericもis_intも指定値が数値（整数）かどうかチェックするのに使えます。たとえば、次のチェックでは共に「数値です」と表示されます。</p>
<pre class="brush: php; gutter: false; title: is_numericとis_intによる数値チェック; notranslate">
&lt;?php
if (is_numeric(100)) {
    echo &quot;数値です（is_numeric）&quot;; //出力される
}

if (is_int(100)) {
    echo &quot;数値です（is_int）&quot;; //出力される
}
?&gt;
</pre>
<div class="list-title">実行結果</div>
<div class="res">数値です（is_numeric）数値です（is_int）</div>
<p>さまざまな処理で整数が求められる場面では同じように使えます。</p>
<h2>フォーム入力値の数値チェックにはis_numeric</h2>
<p>ただし、<span class="stro">フォーム入力値</span>に対して同じような数値チェックを行うと、<span class="stro">is_intでは数値と判断されません</span>。</p>
<p>次のようなフォームに「100」と入力してチェックすると、<span class="stro">is_numericのみ「数値です」</span>と表示されます。</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
&lt;?php
header(&quot;Content-Type: text/html; charset=UTF-8&quot;);
?&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;フォームデータの数値チェック&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;?php
if (is_numeric(@$_POST&#x5B;&quot;t1&quot;])) {
    echo &quot;数値です（is_numeric）&quot;;
}

if (is_int(@$_POST&#x5B;&quot;t1&quot;])) {
    echo &quot;数値です（is_int）&quot;;
}
?&gt;

&lt;form method=&quot;POST&quot; action=&quot;&quot;&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;t1&quot;&gt;&lt;/td&gt;
      &lt;td&gt;&lt;input type=&quot;submit&quot; value=&quot;送信&quot;&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<div class="list-title">実行結果</div>
<p><img decoding="async" src="https://php1st.com/wp-content/uploads/2016/10/2016-10-25-20-46-43.jpg" alt="フォーム入力値の数値チェック" width="367" height="66" class="alignnone size-full wp-image-2308" srcset="https://php1st.com/wp-content/uploads/2016/10/2016-10-25-20-46-43.jpg 367w, https://php1st.com/wp-content/uploads/2016/10/2016-10-25-20-46-43-300x54.jpg 300w" sizes="(max-width: 367px) 100vw, 367px" /></p>
<p>これは、<span class="stro">フォーム入力値は常に文字列</span>だからです。入力された「100」などの数値は<span class="stro">数値文字列</span>になります。入力された内容をそのままチェックする場合は、<span class="stro">数値文字列も含めて数値だと判断するis_numeric関数</span>を使います。</p>
<h2>is_intは「整数」かどうかのチェックに使う</h2>
<p>is_numericもis_intも数値チェックに使えると書きましたが、もう少し正確に違いを説明すると次のようになります。</p>
<ul>
<li>is_numeric &#8212; 数値（整数・小数など）の場合はtrueを返す</li>
<li>is_int &#8212; 整数の場合はtrueを返す</li>
</ul>
<p>つまり、is_numeric関数は小数などを含めた数値全体にtrueを返しますが、is_intは整数のみにtrueを返します。</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
&lt;?php
if (is_numeric(12.34)) {
    echo &quot;数値です（is_numeric）&quot;; //出力される
}

if (is_int(12.34)) {
    echo &quot;数値です（is_int）&quot;;
}
?&gt;
</pre>
<div class="list-title">実行結果</div>
<div class="res">数値です（is_numeric）</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHPのdate関数の使用例</title>
		<link>https://php1st.com/2255</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Tue, 25 Oct 2016 05:11:39 +0000</pubDate>
				<category><![CDATA[PHP関数]]></category>
		<guid isPermaLink="false">https://php1st.com/?p=2255</guid>

					<description><![CDATA[PHPのdate関数を使うと、日付や時刻に書式を設定して取得したり表示することができます。以下に例を紹介します。 PHPのdate関数の簡単な使用例 現在の日時を表示する 現在の日時を表示する例です。date関数の2番目 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>PHPのdate関数を使うと、日付や時刻に書式を設定して取得したり表示することができます。以下に例を紹介します。</p>
<h2>PHPのdate関数の簡単な使用例</h2>
<h3>現在の日時を表示する</h3>
<p>現在の日時を表示する例です。date関数の2番目のパラメータを省略すると現在の日時が対象になります。</p>
<pre class="brush: php; gutter: false; title: 現在の日時を表示する; notranslate">
&lt;?php
echo date(&quot;Y/m/d H:i:s&quot;);
?&gt;
</pre>
<div class="list-title">実行結果</div>
<div class="res">
2016/10/21 11:43:48
</div>
<h3>指定した日時を表示する</h3>
<p>指定した日時を表示するには、2番目のパラメータに日時をタイムスタンプで指定します。タイムスタンプを取得する定番の関数は次のとおりです。</p>
<ul>
<li>[manual func=&#8221;time&#8221;] &#8212; 現在の日時を返す</li>
<li>[manual func=&#8221;mktime&#8221;] &#8212; 年・月・日・時・分・秒を指定</li>
<li>[manual func=&#8221;strtotime&#8221;] &#8212; 日時を示す文字を指定できる</li>
</ul>
<pre class="brush: php; gutter: false; title: 指定した日時を表示する; notranslate">
&lt;?php
$y = 2016;
$m = 8;
$d = 30;
$h = 12;
$i = 34;
$s = 56;
echo date(&quot;Y/m/d H:i:s&quot;, mktime($h, $i, $s, $m, $d, $y))
?&gt;
</pre>
<div class="list-title">実行結果</div>
<div class="res">2016/08/30 12:34:56</div>
<p>mktime関数で指定する日時は時・分・秒・月・日・年の順です。</p>
<h2>さまざまな日付を表示する</h2>
<h3>昨日の日時を表示する</h3>
<p>2番目のパラメータで昨日のタイムスタンプを指定します。いくつかの方法がありますが、次の例では、strtotime関数で「yesterday」を指定しています。</p>
<pre class="brush: php; gutter: false; title: 昨日の日付を表示する; notranslate">
&lt;?php
echo date(&quot;Y/m/d&quot;, strtotime(&quot;yesterday&quot;));
?&gt;
</pre>
<div class="list-title">実行結果</div>
<div class="res">2016/10/20</div>
<h3>10日後の日付を表示する</h3>
<p>strtotime関数で「+10 days」を指定すると10日後のタイムスタンプを取得できます。</p>
<pre class="brush: php; gutter: false; title: 10日後の日付を表示する; notranslate">
&lt;?php
echo date(&quot;Y/m/d&quot;, strtotime(&quot;+10 days&quot;));
?&gt;
</pre>
<div class="list-title">実行結果</div>
<div class="res">2016/10/31</div>
<h3>今日から3日分の日付を表示する</h3>
<p>予約日付を選択してもらうときなどに役立ちます。次の例では単純に箇条書きしているだけです。</p>
<pre class="brush: php; gutter: false; title: 今日から3日分の日付を表示する; notranslate">
&lt;?php
echo &quot;&lt;ul&gt;&quot;;
for ($i = 0; $i &lt; 3; $i++) {
    $dt = date(&quot;Y/m/d&quot;, strtotime(&quot;+{$i} days&quot;));
    echo &quot;&lt;li&gt;{$dt}&lt;/li&gt;&quot;;
}
echo &quot;&lt;/ul&gt;&quot;;
?&gt;
</pre>
<div class="list-title">実行結果</div>
<p><img decoding="async" src="https://php1st.com/wp-content/uploads/2016/10/2016-10-21-12-15-10.jpg" alt="3日分の日付を表示する" width="118" height="70" class="alignnone size-full wp-image-2258" /></p>
<p>その他、date関数について詳しくは以下のページも参考にしてください。</p>
<p>[manual func=&#8221;date&#8221; one=&#8221;true&#8221;]</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>isset関数とempty関数と「!」の違い</title>
		<link>https://php1st.com/1402</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Thu, 18 Sep 2014 10:04:14 +0000</pubDate>
				<category><![CDATA[PHP関数]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1402</guid>

					<description><![CDATA[isset関数とempty関数は共に変数に何か入っているか調べる関数です。空でないことを確認して、次の処理に進むときに使います。詳しくは、以下のページをご覧ください。 ○PHPマニュアル [manual func=&#8 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>isset関数とempty関数は共に変数に何か入っているか調べる関数です。空でないことを確認して、次の処理に進むときに使います。詳しくは、以下のページをご覧ください。</p>
<p>○PHPマニュアル<br />
[manual func=&#8221;empty&#8221;] &#8212; 変数が空であるかどうかを検査する<br />
[manual func=&#8221;isset&#8221;] &#8212; 変数がセットされていること、そして NULL でないことを検査する</p>
<pre class="brush: php; title: 変数に何か入っているか確認する; notranslate">
&lt;?php
$value = &quot;テスト&quot;;
if (isset($value)) {
    echo &quot;中身は入っています&quot;;
} else {
    echo &quot;空です&quot;;
}
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
中身は入っています
</pre>
<p>empty関数も同じように変数が空でないかどうかを確認することができます。</p>
<pre class="brush: php; title: 変数が空でないか確認する; notranslate">
&lt;?php
$value = &quot;テスト&quot;;
if (!empty($value)) {
    echo &quot;中身は入っています&quot;;
} else {
    echo &quot;空です&quot;;
}
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
中身は入っています
</pre>
<h2>issetとemptyの違い</h2>
<p>変数の中身が「0」（半角数字の0や数値文字列の&#8221;0&#8243;）だった場合、empty関数は空っぽだと判断します。</p>
<pre class="brush: php; title: emptyは「0」を空だと判断する; notranslate">
&lt;?php
$value = &quot;0&quot;;
if (!empty($value)) {
    echo &quot;中身は入っています&quot;;
} else {
    echo &quot;空です&quot;;
}
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
空です
</pre>
<p>その他、次のような値は空だとみなされます。</p>
<blockquote><p>    &#8220;&#8221; (空文字列)<br />
    0 (整数 の 0)<br />
    0.0 (浮動小数点数の 0)<br />
    &#8220;0&#8221; (文字列 の 0)<br />
    NULL<br />
    FALSE<br />
    array() (空の配列)<br />
    $var; (変数が宣言されているが、値が設定されていない)</p></blockquote>
<p>（PHPマニュアルより引用）</p>
<p>一方のisset関数は中身が「0」でも入っていると判断します。</p>
<pre class="brush: php; title: issetは「0」でも入っていると判断する; notranslate">
&lt;?php
$value = &quot;0&quot;;
if (isset($value)) {
    echo &quot;中身は入っています&quot;;
} else {
    echo &quot;空です&quot;;
}
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
中身は入っています
</pre>
<h2>NULLはisset関数でもempty関数でも空だと判断される</h2>
<p>注意が必要なのは「NULL」でしょうか。</p>
<p>empty関数では空だと判断されそうなのはイメージ通りです。</p>
<pre class="brush: php; title: empty関数はNULLを空だと判断する; notranslate">
&lt;?php
$value = NULL;
if (!empty($value)) {
    echo &quot;中身は入っています&quot;;
} else {
    echo &quot;空です&quot;;
}
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
空です
</pre>
<p>isset関数でもNULLは空だと判断されます。</p>
<pre class="brush: php; title: isset関数もNULLを空だと判断する; notranslate">
&lt;?php
$value = NULL;
if (isset($value)) {
    echo &quot;中身は入っています&quot;;
} else {
    echo &quot;空です&quot;;
}
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
空です
</pre>
<p>isset関数を使って変数や配列要素の存在チェックをしている場合、NULLが入っていると「存在しない」と判断してしまうので注意が必要です（実は存在するが中身がNULL）。</p>
<h2>「!」はempty関数の省略形？</h2>
<p>0などを空だと判断するかどうかの違いでisset関数とempty関数の違いがわかりましたが、省略形とも言える「!」を見てみましょう。</p>
<p>次のように記述して、変数の中身が空かどうか判断することができます。</p>
<pre class="brush: php; title: 変数が空かどうか判断する「!」; notranslate">
&lt;?php
$value = &quot;テスト&quot;;
if (!$value) {
    echo &quot;空です&quot;;
} else {
    echo &quot;中身は入っています&quot;;
}
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
中身は入っています
</pre>
<p>よくわからない構文かもしれませんが「if (!$value)」は「if ($value == false)」のことなので、falseに評価される変数を「空っぽ」だと判断している仕組みです。中身が空の場合も含めて数字の0もfalseに評価されるので、結局はempty関数と同じ動作のようになります。</p>
<pre class="brush: php; title: 「!」は「0」を空だと判断する; notranslate">
&lt;?php
$value = &quot;0&quot;;
if (!$value) {
    echo &quot;空です&quot;;
} else {
    echo &quot;中身は入っています&quot;;
}
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
空です
</pre>
<p>ということで、empty関数で変数が空かどうかチェックするときは、代わりに「!」を使うことができます。isset関数の代わりではないので注意しましょう。</p>
<p>空かどうかの「!」の逆に「何か入っているかどうか」をチェックする場合は、「!」を取り去って次のように変数名だけを調べれば大丈夫です。</p>
<pre class="brush: php; title: 変数に何か入っているかチェックする; notranslate">
&lt;?php
$value = &quot;テスト&quot;;
if ($value) {
    echo &quot;中身は入っています&quot;;
} else {
    echo &quot;空です&quot;;
}
?&gt;
</pre>
<p>「if ($value)」と書いてあると、もはや何の処理なのかよくわからなくなるかもしれませんが、「if ($value == true)」の省略形です。変数に何か入っていればtrueに評価されるということを利用した「省略形」です。</p>
<p>「0」を指定すれば空だと判断されるのでempty関数の代わりになります（isset関数の代わりではなく）。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>文字列を分割して配列を作成するexplode関数</title>
		<link>https://php1st.com/1869</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Wed, 17 Sep 2014 05:21:08 +0000</pubDate>
				<category><![CDATA[PHP関数]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1869</guid>

					<description><![CDATA[文字列を分割して配列する定番の関数がexplode関数です。次の例では、「2014/09/17」のような日付を「/」で分割して配列に格納しています｡ &#60;?php $date = date(&#34;Y/m/d&#038;q [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>文字列を分割して配列する定番の関数がexplode関数です。次の例では、「2014/09/17」のような日付を「/」で分割して配列に格納しています｡</p>
<pre class="brush: php; highlight: [3]; title: 日付を分割して配列に格納する; notranslate">
&lt;?php
$date = date(&quot;Y/m/d&quot;);
$ar = explode(&quot;/&quot;, $date);
print_r($ar);
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
Array ( [0] => 2014 [1] => 09 [2] => 17 ) 
</pre>
<p>詳しくは、以下のページをご覧ください。</p>
<p><a href="http://jp1.php.net/manual/ja/function.explode.php" target="_blank">PHPマニュアル：explode</a></p>
<h2>特定の位置の要素を表示する</h2>
<p>文字列を配列に分割して、特定の要素を表示したい場合は、PHP5.4以降であれば関数の戻り値を直接配列として扱うことができます。次の例では配列の先頭要素の「年」を表示しています｡</p>
<pre class="brush: php; highlight: [3]; title: 現在の「年」を表示する; notranslate">
&lt;?php
$date = date(&quot;Y/m/d&quot;);
echo explode(&quot;/&quot;, $date)&#x5B;0];
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
2014
</pre>
<p>つまり、「配列を返す関数[0]」と記述すれば戻り値の先頭要素を直接表示することができます。</p>
<h2>指定数の要素を除外して配列を作成する</h2>
<p>特定の個数の要素のみを配列に格納すれば良いのであれば、explode関数の3番目のパラメータに負の数で「除外する要素数」を指定します。次の例では、「年月日」から最後の2つの要素「月日」が除外されて「年」のみが配列に格納されます。</p>
<pre class="brush: php; highlight: [3]; title: 不要な要素を除外して配列を作成する; notranslate">
&lt;?php
$date = date(&quot;Y/m/d&quot;);
$ar = explode(&quot;/&quot;, $date, -2);
print_r($ar);
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
Array ( [0] => 2014 )
</pre>
<p>ちなみに、3番目のパラメータに正の数を指定すると「作成される配列の要素数<br />
」になります。最後の要素には、分割しきれなかった文字列がまとめて格納されます。次の例では「2」を指定しているので、先頭には「年」、2番目の要素には「月/日」が格納されます。</p>
<pre class="brush: php; highlight: [3]; title: 2つの要素を持つ配列に分割; notranslate">
&lt;?php
$date = date(&quot;Y/m/d&quot;);
$ar = explode(&quot;/&quot;, $date, 2);
print_r($ar);
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
Array ( [0] => 2014 [1] => 09/17 ) 
</pre>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
