<?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>置換 &#8211; トモデジ  tomodigi.com</title>
	<atom:link href="https://tomodigi.com/tag/%e7%bd%ae%e6%8f%9b/feed/" rel="self" type="application/rss+xml" />
	<link>https://tomodigi.com</link>
	<description>デジタルもアナログも</description>
	<lastBuildDate>Tue, 03 Feb 2015 04:54:58 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>(PHP) 文字列から改行を削除（または置き換え）するときの方法と比較</title>
		<link>https://tomodigi.com/web/php/php-%e6%96%87%e5%ad%97%e5%88%97%e3%81%8b%e3%82%89%e6%94%b9%e8%a1%8c%e3%82%92%e5%89%8a%e9%99%a4%ef%bc%88%e3%81%be%e3%81%9f%e3%81%af%e7%bd%ae%e3%81%8d%e6%8f%9b%e3%81%88%ef%bc%89%e3%81%99%e3%82%8b/</link>
					<comments>https://tomodigi.com/web/php/php-%e6%96%87%e5%ad%97%e5%88%97%e3%81%8b%e3%82%89%e6%94%b9%e8%a1%8c%e3%82%92%e5%89%8a%e9%99%a4%ef%bc%88%e3%81%be%e3%81%9f%e3%81%af%e7%bd%ae%e3%81%8d%e6%8f%9b%e3%81%88%ef%bc%89%e3%81%99%e3%82%8b/#respond</comments>
		
		<dc:creator><![CDATA[Tomo]]></dc:creator>
		<pubDate>Tue, 03 Feb 2015 19:53:34 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[改行コード]]></category>
		<category><![CDATA[文字コード]]></category>
		<category><![CDATA[置換]]></category>
		<guid isPermaLink="false">http://www.tomodigi.com/?p=2387</guid>

					<description><![CDATA[文字列から改行を削除します。 ご存じの通り、改行コードはUnix系がLF(\n)のみ、DOS系（Windows系）がCR+LF(\r\n)、Mac系がCR(\r)のみとなっています。 PHPでこれらを置換しよう思った場合 &#8230; <a href="https://tomodigi.com/web/php/php-%e6%96%87%e5%ad%97%e5%88%97%e3%81%8b%e3%82%89%e6%94%b9%e8%a1%8c%e3%82%92%e5%89%8a%e9%99%a4%ef%bc%88%e3%81%be%e3%81%9f%e3%81%af%e7%bd%ae%e3%81%8d%e6%8f%9b%e3%81%88%ef%bc%89%e3%81%99%e3%82%8b/" class="more-link">続きを読む <span class="screen-reader-text">(PHP) 文字列から改行を削除（または置き換え）するときの方法と比較</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>文字列から改行を削除します。</p>
<p>ご存じの通り、改行コードはUnix系がLF(\n)のみ、DOS系（Windows系）がCR+LF(\r\n)、Mac系がCR(\r)のみとなっています。</p>
<p>PHPでこれらを置換しよう思った場合、改行コードがいずれか一つであることが明確なら良いのですが、なかなかそうはいきません。</p>
<p>置換に使う関数はいくつかありますが、str_replaceとmb_ereg_replaceを比較しました。str_replaceは文字列の単純な置換を、mb_ereg_replaceはマルチバイト対応、正規表現で一致する文字列の置換を行います。</p>
<p>改行の消去と置換では微妙にコードに違いが出ますが、今回は半角スペースに置換しました。</p>
<p>比較したコードは以下の通りです。</p>
<p><code>//元の文字列:$original</code></p>
<p><code>//#1 mb_ereg_replace 一つずつ置換</code><br />
<code>$str1 = mb_ereg_replace("\r\n","\n",$original); //CR+LFをLFに</code><br />
<code> $str1 = mb_ereg_replace("\r","\n",$str1); // CRをLFに</code><br />
<code> $str1 = mb_ereg_replace("\n"," ",$str1);//LFを半角スペースに</code></p>
<p><code>//#2 mb_ereg_replace 3通りを置換</code><br />
<code>$str2 = mb_ereg_replace("\r\n|\n|\r"," ",$original); </code></p>
<p><code>//#3 str_replace 一つずつ置換</code><br />
<code> $str3 = str_replace("\r\n","\n",$original); //CR+LFをLFに</code><br />
<code> $str3 = str_replace("\r","\n",$str3); // CRをLFに</code><br />
<code> $str3 = str_replace("\n"," ",$str3);//LFを半角スペースに</code></p>
<p><code>//#4 str_replace 3通りを置換</code><br />
<code>$str4 = str_replace(array("\r\n","\n","\r")," ",$original);</code></p>
<p>同じ文章（約40KB）を1000回ほど置き換え、時間を計測しました。文字列の置換結果はいずれも同じですが、かかった時間はかなり違いました。<br />
<code>#1 : 0.92秒</code><br />
<code>#2 : 0.30秒</code><br />
<code>#3 : 0.11秒</code><br />
<code>#4 : 0.09秒</code></p>
<p>やはりstr_replaceは高速です。正規表現は汎用性も高く便利な機能ですが、時間はどうしてもかかってしまいます。mb_str_replaceのような関数が標準であると便利だと思います。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tomodigi.com/web/php/php-%e6%96%87%e5%ad%97%e5%88%97%e3%81%8b%e3%82%89%e6%94%b9%e8%a1%8c%e3%82%92%e5%89%8a%e9%99%a4%ef%bc%88%e3%81%be%e3%81%9f%e3%81%af%e7%bd%ae%e3%81%8d%e6%8f%9b%e3%81%88%ef%bc%89%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>sendmailで改行が増える？ (PHP)</title>
		<link>https://tomodigi.com/web/sendmail%e3%81%a7%e6%94%b9%e8%a1%8c%e3%81%8c%e5%a2%97%e3%81%88%e3%82%8b%ef%bc%9f/</link>
					<comments>https://tomodigi.com/web/sendmail%e3%81%a7%e6%94%b9%e8%a1%8c%e3%81%8c%e5%a2%97%e3%81%88%e3%82%8b%ef%bc%9f/#respond</comments>
		
		<dc:creator><![CDATA[Tomo]]></dc:creator>
		<pubDate>Sat, 21 Aug 2010 01:46:00 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WEB]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[改行]]></category>
		<category><![CDATA[置換]]></category>
		<guid isPermaLink="false">http://www.tomodigi.com/?p=43</guid>

					<description><![CDATA[PHPからsendmailを使ってメールを （メールフォームなどから） 送る際に、pop受信時のみ、改行がなぜか増えてしまうことがありました。Webメールなどではそういう現象なかったので調べてみましたが、改行コードの扱い &#8230; <a href="https://tomodigi.com/web/sendmail%e3%81%a7%e6%94%b9%e8%a1%8c%e3%81%8c%e5%a2%97%e3%81%88%e3%82%8b%ef%bc%9f/" class="more-link">続きを読む <span class="screen-reader-text">sendmailで改行が増える？ (PHP)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>PHPからsendmailを使ってメールを （メールフォームなどから） 送る際に、pop受信時のみ、改行がなぜか増えてしまうことがありました。Webメールなどではそういう現象なかったので調べてみましたが、改行コードの扱いの違いが原因らしいことがわかりました。<br />
<a title="phpからメールを送ると、改行がなくなったり、改行が増えたりする件   at softelメモ" href="http://www.softel.co.jp/blogs/tech/archives/99">この</a>サイトを参考に以下のように改行コードを修正、統一することで無事に解決しました。</p>
<pre>$s = str_replace(array("\r\n", "\r"), "\n", $s);</pre>
<p>例では文字列を$sとしています。上記の様に文字列中の改行コードを統一して対応しました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tomodigi.com/web/sendmail%e3%81%a7%e6%94%b9%e8%a1%8c%e3%81%8c%e5%a2%97%e3%81%88%e3%82%8b%ef%bc%9f/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
