<?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>desenvolvimento para web &#187; php</title>
	<atom:link href="http://desenvolvimentoparaweb.com/categoria/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://desenvolvimentoparaweb.com</link>
	<description>padrões da web, usabilidade, acessibilidade, web design, SEO, blogs e tecnologias para desenvolver a web</description>
	<lastBuildDate>Mon, 16 Aug 2010 13:00:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>URLs amig&#225;veis (slug) &#224; WordPress</title>
		<link>http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/</link>
		<comments>http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 14:40:36 +0000</pubDate>
		<dc:creator>Tárcio Zemel</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[projetos]]></category>
		<guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=652</guid>
		<description><![CDATA[Apenda a gerar URLs amig&aacute;veis como &eacute; feito no WordPress e implemente em seu sistema PHP]]></description>
			<content:encoded><![CDATA[<p><img src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/07/urls-amigaveis-slug-wordpress.jpg" alt="URLs amig&aacute;veis (slug) WordPress" title="" width="300" height="300" class="aligncenter size-full wp-image-653" /></p>
<p>O <strong>desenvolvimento web em WordPress</strong> &eacute; excelente! O CMS j&aacute; vem com diversas fun&ccedil;&otilde;es e funcionalidades para facilitar a vida de desenvolvedores e, at&eacute; mesmo, de pessoas que n&atilde;o tem o m&iacute;nimo conhecimento em programa&ccedil;&atilde;o (um dos objetivos &eacute; esse, mesmo).</p>
<p>Mas muitos desenvolvedores, principalmente os ainda incipientes, esquecem que o WordPress nada mais &eacute; do que <strong>PHP</strong>! Claro, o WP &eacute; nada mais, nada menos, que um sistema feito em PHP, como voc&ecirc; e eu poder&iacute;amos ter feito. Mas, por motivos que me fogem ao conhecimento, as pessoas esquecem isso&#8230; Talvez o n&iacute;vel de abstra&ccedil;&atilde;o em programa&ccedil;&atilde;o que o CMS proporcione seja o &#8220;culpado&#8221;, mas, sinceramente, n&atilde;o tenho certeza.</p>
<p>Ent&atilde;o, se voc&ecirc; tiver a curiosidade de vasculhar os arquivos PHP que fazem do WordPress o que ele &eacute;, vai ter uma grata surpresa e encontrar uma rica fonte de scripts, fun&ccedil;&otilde;es e funcionalidades que voc&ecirc; sempre quis implementar e n&atilde;o sabia como!  :-D</p>
<h3>URLs amig&aacute;ves &agrave; WordPress</h3>
<p>Por exemplo, muitos querem implementar uma estrutura de URLs amig&aacute;ves (gerar os famosos &#8220;slugs&#8221;) em sistemas desenvolvidos do zero  &#8211; seja atrav&eacute;s de frameworks ou em PHPU (&#8220;PHP Unha&#8221;) -, mas n&atilde;o sabem como. Ora, se sabemos que o WordPress possui um &oacute;timo sistema de gera&ccedil;&atilde;o de slugs e temos acesso a seu c&oacute;digo-fonte, tudo o que &eacute; preciso &eacute; vasculhar o c&oacute;digo-fonte e encontrar as fun&ccedil;&otilde;es certas.</p>
<p>Seguindo o exemplo de <strong>gerar slugs</strong>, procurando um pouco, &eacute; poss&iacute;vel saber que as fun&ccedil;&otilde;es necess&aacute;rias se encontram em <strong>/wp-includes/formatting.php</strong>. E, como era de se esperar, as fun&ccedil;&otilde;es est&atilde;o devidamente documentadas com seu escopo, par&acirc;metros e retorno. Precisa de mais?</p>
<p>Para gerar URLs amig&aacute;veis &agrave; WordPress, s&atilde;o necess&aacute;rias 4 fun&ccedil;&otilde;es. 3 &#8220;preliminares&#8221; que s&atilde;o:</p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
 * Converts all accent characters to ASCII characters.
 *
 * If there are no accent characters, then the string given is just returned.
 *
 * @since 1.2.1
 *
 * @param string $string Text that might have accent characters
 * @return string Filtered string with replaced &quot;nice&quot; characters.
 */</span>
<span style="color: #000000; font-weight: bold;">function</span> remove_accents<span style="color: #009900;">&#40;</span><span style="color: #000088;">$string</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/[\x80-\xff]/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$string</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$string</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>seems_utf8<span style="color: #009900;">&#40;</span><span style="color: #000088;">$string</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$chars</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #666666; font-style: italic;">// Decompositions for Latin-1 Supplement</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">129</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">130</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">131</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">132</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">133</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">135</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'C'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">136</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">137</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">138</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">139</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">140</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">141</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">142</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">143</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">145</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'N'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">146</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">147</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">148</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">149</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">150</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">153</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">154</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">155</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">156</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">157</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Y'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">159</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'s'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">160</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">161</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">162</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">163</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">164</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">165</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">167</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'c'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">168</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">169</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">170</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">171</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">172</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">173</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">174</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">175</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">177</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'n'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">178</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">179</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">180</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">181</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">182</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">182</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">185</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">186</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">187</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">188</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">189</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'y'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">191</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'y'</span><span style="color: #339933;">,</span>
		<span style="color: #666666; font-style: italic;">// Decompositions for Latin Extended-A</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">129</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">130</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">131</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">132</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">133</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">134</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'C'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">135</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'c'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">136</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'C'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">137</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'c'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">138</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'C'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">139</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'c'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">140</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'C'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">141</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'c'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">142</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'D'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">143</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'d'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">144</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'D'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">145</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'d'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">146</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">147</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">148</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">149</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">150</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">151</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">152</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">153</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">154</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">155</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">156</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'G'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">157</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'g'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">158</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'G'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">159</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'g'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">160</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'G'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">161</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'g'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">162</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'G'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">163</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'g'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">164</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'H'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">165</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'h'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">166</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'H'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">167</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'h'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">168</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">169</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">170</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">171</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">172</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">173</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">174</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">175</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">176</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">177</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">178</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'IJ'</span><span style="color: #339933;">,</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">179</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ij'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">180</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'J'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">181</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'j'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">182</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'K'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">183</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'k'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">184</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'k'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">185</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'L'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">186</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'l'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">187</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'L'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">188</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'l'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">189</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'L'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">190</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'l'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">191</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'L'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'l'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">129</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'L'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">130</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'l'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">131</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'N'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">132</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'n'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">133</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'N'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">134</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'n'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">135</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'N'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">136</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'n'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">137</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'N'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">138</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'n'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">139</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'N'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">140</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">141</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">142</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">143</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">144</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">145</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">146</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'OE'</span><span style="color: #339933;">,</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">147</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'oe'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">148</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'R'</span><span style="color: #339933;">,</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">149</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'r'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">150</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'R'</span><span style="color: #339933;">,</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">151</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'r'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">152</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'R'</span><span style="color: #339933;">,</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">153</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'r'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">154</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'S'</span><span style="color: #339933;">,</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">155</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'s'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">156</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'S'</span><span style="color: #339933;">,</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">157</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'s'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">158</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'S'</span><span style="color: #339933;">,</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">159</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'s'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">160</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'S'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">161</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'s'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">162</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'T'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">163</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'t'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">164</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'T'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">165</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'t'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">166</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'T'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">167</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'t'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">168</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">169</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">170</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">171</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">172</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">173</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">174</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">175</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">176</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">177</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">178</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">179</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">180</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'W'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">181</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'w'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">182</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Y'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">183</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'y'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">184</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Y'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">185</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Z'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">186</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'z'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">187</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Z'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">188</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'z'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">189</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Z'</span><span style="color: #339933;">,</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">190</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'z'</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">191</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'s'</span><span style="color: #339933;">,</span>
		<span style="color: #666666; font-style: italic;">// Euro Sign</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">226</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">130</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">172</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span>
		<span style="color: #666666; font-style: italic;">// GBP (Pound) Sign</span>
		<span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">194</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">163</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$string</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$string</span><span style="color: #339933;">,</span> <span style="color: #000088;">$chars</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// Assume ISO-8859-1 if not UTF-8</span>
		<span style="color: #000088;">$chars</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'in'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">131</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">138</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">142</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">154</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">158</span><span style="color: #009900;">&#41;</span>
			<span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">159</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">162</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">165</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">181</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">192</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">193</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">194</span><span style="color: #009900;">&#41;</span>
			<span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">195</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">196</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">197</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">199</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">201</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">202</span><span style="color: #009900;">&#41;</span>
			<span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">203</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">204</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">205</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">206</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">207</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">209</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">210</span><span style="color: #009900;">&#41;</span>
			<span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">211</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">212</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">213</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">214</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">216</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">217</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">218</span><span style="color: #009900;">&#41;</span>
			<span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">219</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">220</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">221</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">224</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">225</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">226</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">227</span><span style="color: #009900;">&#41;</span>
			<span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">228</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">229</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">231</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">232</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">233</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">234</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">235</span><span style="color: #009900;">&#41;</span>
			<span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">236</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">237</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">238</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">239</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">241</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">242</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">243</span><span style="color: #009900;">&#41;</span>
			<span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">244</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">245</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">246</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">248</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">249</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">250</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">251</span><span style="color: #009900;">&#41;</span>
			<span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">252</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">253</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$chars</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'out'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy&quot;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$string</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$string</span><span style="color: #339933;">,</span> <span style="color: #000088;">$chars</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'in'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$chars</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'out'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$double_chars</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'in'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">140</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">156</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">198</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">208</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">222</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">223</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">230</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">240</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">254</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$double_chars</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'out'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'OE'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'oe'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'AE'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'DH'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'TH'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'ss'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'ae'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'dh'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'th'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$string</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$double_chars</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'in'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$double_chars</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'out'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$string</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$string</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
 * Checks to see if a string is utf8 encoded.
 *
 * NOTE: This function checks for 5-Byte sequences, UTF8
 *       has Bytes Sequences with a maximum length of 4.
 *
 * @author bmorel at ssi dot fr (modified)
 * @since 1.2.1
 *
 * @param string $str The string to be checked
 * @return bool True if $str fits a UTF-8 model, false otherwise.
 */</span>
<span style="color: #000000; font-weight: bold;">function</span> seems_utf8<span style="color: #009900;">&#40;</span><span style="color: #000088;">$str</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$length</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$str</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$length</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$c</span> <span style="color: #339933;">=</span> <span style="color: #990000;">ord</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$str</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$c</span> <span style="color: #339933;">&lt;</span> <span style="color: #208080;">0x80</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$n</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># 0bbbbbbb
</span>		<span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$c</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xE0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #208080;">0xC0</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$n</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># 110bbbbb
</span>		<span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$c</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xF0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #208080;">0xE0</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$n</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># 1110bbbb
</span>		<span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$c</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xF8</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #208080;">0xF0</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$n</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># 11110bbb
</span>		<span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$c</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xFC</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #208080;">0xF8</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$n</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># 111110bb
</span>		<span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$c</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xFE</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #208080;">0xFC</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$n</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># 1111110b
</span>		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># Does not match any model
</span>		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$j</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$j</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$n</span><span style="color: #339933;">;</span> <span style="color: #000088;">$j</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;"># n bytes matching 10bbbbbb follow ?
</span>			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">++</span><span style="color: #000088;">$i</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$length</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">ord</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$str</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xC0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #208080;">0x80</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
 * Encode the Unicode values to be used in the URI.
 *
 * @since 1.5.0
 *
 * @param string $utf8_string
 * @param int $length Max length of the string
 * @return string String with Unicode encoded for URI.
 */</span>
<span style="color: #000000; font-weight: bold;">function</span> utf8_uri_encode<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$utf8_string</span><span style="color: #339933;">,</span> <span style="color: #000088;">$length</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$unicode</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$values</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: #000088;">$num_octets</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$unicode_length</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$string_length</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$utf8_string</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$string_length</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #000088;">$value</span> <span style="color: #339933;">=</span> <span style="color: #990000;">ord</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$utf8_string</span><span style="color: #009900;">&#91;</span> <span style="color: #000088;">$i</span> <span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$value</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">128</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$length</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$unicode_length</span> <span style="color: #339933;">&gt;=</span> <span style="color: #000088;">$length</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
				<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$unicode</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$unicode_length</span><span style="color: #339933;">++;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #000088;">$num_octets</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$value</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">224</span> <span style="color: #009900;">&#41;</span> ? <span style="color: #cc66cc;">2</span> <span style="color: #339933;">:</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$length</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$unicode_length</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$num_octets</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #000088;">$length</span> <span style="color: #009900;">&#41;</span>
				<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$num_octets</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$num_octets</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$unicode</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'%'</span> <span style="color: #339933;">.</span> <span style="color: #990000;">dechex</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'%'</span> <span style="color: #339933;">.</span> <span style="color: #990000;">dechex</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'%'</span> <span style="color: #339933;">.</span> <span style="color: #990000;">dechex</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000088;">$unicode_length</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">9</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$unicode</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'%'</span> <span style="color: #339933;">.</span> <span style="color: #990000;">dechex</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'%'</span> <span style="color: #339933;">.</span> <span style="color: #990000;">dechex</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000088;">$unicode_length</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">6</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
&nbsp;
				<span style="color: #000088;">$values</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: #000088;">$num_octets</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$unicode</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>
<p>E, com essas fun&ccedil;&otilde;es devidamente estabelecidas, a fun&ccedil;&atilde;o que gera os slugs, propriamente dita:</p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
 * Sanitizes title, replacing whitespace with dashes.
 *
 * Limits the output to alphanumeric characters, underscore (_) and dash (-).
 * Whitespace becomes a dash.
 *
 * @since 1.2.0
 *
 * @param string $title The title to be sanitized.
 * @return string The sanitized title.
 */</span>
<span style="color: #000000; font-weight: bold;">function</span> sanitize_title_with_dashes<span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// Preserve escaped octets.</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'|%([a-fA-F0-9][a-fA-F0-9])|'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'---$1---'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// Remove percent signs that are not part of an octet.</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// Restore octets.</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'|---([a-fA-F0-9][a-fA-F0-9])---|'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'%$1'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> remove_accents<span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>seems_utf8<span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mb_strtolower'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mb_strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'UTF-8'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> utf8_uri_encode<span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/&amp;.+?;/'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// kill entities</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/[^%a-z0-9 _-]/'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/\s+/'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'|-+|'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'-'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$title</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>
<p>Ent&atilde;o, para gerar um slug em seu pr&oacute;prio sistema depois de implementar as fun&ccedil;&otilde;es mostradas, basta escrever:</p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">sanitize_title_with_dashes<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>
<p>Achou o nome da fun&ccedil;&atilde;o grande ou feio? Voc&ecirc; tem o c&oacute;digo, altere como bem entender!</p>
<h3>Considera&ccedil;&otilde;es finais</h3>
<p>O WordPress &eacute; <strong>software livre</strong> (registrado sob a licen&ccedil;a <a href="http://pt.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>), ent&atilde;o voc&ecirc; pode pegar essas 4 fun&ccedil;&otilde;es e implementar em seu site/sistema/softwares sem o medo de receber uma cartinha do advogado da equipe WordPress amanh&atilde; ou depois.</p>
<p>Fica uma pergunta: voc&ecirc; tem um software livre &agrave; disposi&ccedil;&atilde;o e fica quebrando a cabe&ccedil;a em busca de solu&ccedil;&otilde;es de c&oacute;digo que j&aacute; existem e est&atilde;o implementadas nele? Vasculhe todo o c&oacute;digo fonte (veja alguns recursos que ajudam no artigo sobre <a href="/indicacoes/ferramentas-e-recursos-para-desenvolvimento-web/">ferramentas e recursos para desenvolvimento web</a>) e procure por aquilo que vai lhe ser &uacute;til!</p>
<p>N&atilde;o seja t&iacute;mido!  ;-)</p>
<h3  class="related_post_title">Artigos Relacionados</h3><ul class="related_post"><li><a href="http://desenvolvimentoparaweb.com/miscelanea/jetpack-explorando-novas-maneiras-de-ampliar-e-personalizar-a-web/" title="Jetpack: explorando novas maneiras de ampliar e personalizar a web">Jetpack: explorando novas maneiras de ampliar e personalizar a web</a></li><li><a href="http://desenvolvimentoparaweb.com/php/dicas-para-otimizar-codigos-php/" title="Dicas para otimizar códigos PHP">Dicas para otimizar códigos PHP</a></li><li><a href="http://desenvolvimentoparaweb.com/miscelanea/como-montar-um-portfolio-sem-ter-clientes/" title="Como montar um portfolio sem ter clientes">Como montar um portfolio sem ter clientes</a></li><li><a href="http://desenvolvimentoparaweb.com/php/swift-mailer-solucao-php-para-envio-de-e-mails/" title="Swift Mailer: solução PHP para envio de e-mails">Swift Mailer: solução PHP para envio de e-mails</a></li><li><a href="http://desenvolvimentoparaweb.com/php/como-pegar-parte-do-conteudo-dados-de-outro-site-com-php/" title="Como pegar parte do conteúdo (dados) de outro site com PHP">Como pegar parte do conteúdo (dados) de outro site com PHP</a></li><li><a href="http://desenvolvimentoparaweb.com/wordpress/otimizacao-wordpress-performance-desempenho-blog-site/" title="Otimização WordPress: aumente a performance e desempenho de seu blog / site">Otimização WordPress: aumente a performance e desempenho de seu blog / site</a></li><li><a href="http://desenvolvimentoparaweb.com/jquery/8-dicas-fazer-codigos-melhores-jquery/" title="8 dicas para fazer códigos melhores com jQuery">8 dicas para fazer códigos melhores com jQuery</a></li><li><a href="http://desenvolvimentoparaweb.com/wordpress/truques-de-configuracao-do-wordpress/" title="Truques de configuração do WordPress">Truques de configuração do WordPress</a></li><li><a href="http://desenvolvimentoparaweb.com/miscelanea/sobre-parcerias-de-trabalhos-de-desenvolvimento-web/" title="Sobre parcerias de trabalhos em desenvolvimento web">Sobre parcerias de trabalhos em desenvolvimento web</a></li><li><a href="http://desenvolvimentoparaweb.com/jquery/como-criar-sumarios-dinamicamente-com-o-toc-table-of-contents-jquery-plugin-jquerytoc/" title="Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin">Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Dicas para otimizar c&#243;digos PHP</title>
		<link>http://desenvolvimentoparaweb.com/php/dicas-para-otimizar-codigos-php/</link>
		<comments>http://desenvolvimentoparaweb.com/php/dicas-para-otimizar-codigos-php/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 18:43:43 +0000</pubDate>
		<dc:creator>Tárcio Zemel</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[desempenho]]></category>
		<category><![CDATA[otimização]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[scripts]]></category>
		<guid isPermaLink="false">http://www.desenvolvimentoparaweb.com/?p=298</guid>
		<description><![CDATA[Fazer programa&ccedil;&atilde;o em PHP &eacute; f&aacute;cil; fazer uma boa programa&ccedil;&atilde;o exige um pouco mais de conhecimento. Saiba de dicas r&aacute;pidas e f&aacute;ceis para aumentar a performance de seus c&oacute;digos!]]></description>
			<content:encoded><![CDATA[<p>Toda as linguagens de programa&ccedil;&atilde;o modernas foram idealizadas e s&atilde;o feitas de modo a permitir fazer a mesma tarefa de in&uacute;meras maneiras diferentes. Esse &#8220;todos caminhos levam a Roma&#8221; da programa&ccedil;&atilde;o moderna &eacute; bastante &uacute;til, j&aacute; que o desenvolvedor tem a oportunidade de escolher por quais jeitos vai guiar sua programa&ccedil;&atilde;o e quais caminhos seguir&aacute; para implementar seus projetos. Com o PHP n&atilde;o poderia ser diferente: ao programar com PHP, al&eacute;m de ser bem tranquilo, &eacute; poss&iacute;vel implementar diversas solu&ccedil;&otilde;es de diversas maneiras diferentes.</p>
<p>Mas esta liberdade toda, se mal utilizada, <strong>pode prejudicar a performance e qualidade de um projeto</strong>. Atrav&eacute;s de m&aacute;s pr&aacute;ticas de programa&ccedil;&atilde;o PHP algu&eacute;m pode fazer o desempenho de um sistema inteiro ficar aqu&eacute;m de suas potencialidades, caso este tivesse sido programado de maneira &#8220;adequada&#8221;. Existem algumas pequenas dicas que s&atilde;o f&aacute;ceis de seguir &#8211; n&atilde;o interferem em nada a l&oacute;gica do programa e <em>modus operandi</em> do progamador PHP &#8211; e surtem bons resultados, rumo &agrave; <strong>otimiza&ccedil;&atilde;o</strong> e <strong>ganho de desempenho e performance</strong> de seus <em>scripts</em>.</p>
<h3>Otimiza&ccedil;&atilde;o de sa&iacute;da de dados</h3>
<p>O PHP permite o processamento <em>server side</em> das solitica&ccedil;&otilde;es feitas no lado do cliente. &Eacute; muito importante, ent&atilde;o, uma <strong>boa performance</strong> ao exibir o resultado deste processamento feito no lado do servidor, j&aacute; que o <em>front-end</em> de uma aplica&ccedil;&atilde;o ou sistema deve ser f&aacute;cil de usar e r&aacute;pido ao responder requisi&ccedil;&otilde;es.</p>
<h4>Use &#8220;echo&#8221; ao inv&eacute;s de &#8220;print&#8221;</h4>
<p>Dentre as duas fun&ccedil;&otilde;es que permitem a exibi&ccedil;&atilde;o de informa&ccedil;&otilde;es &#8211; o &#8220;tal&#8221; processamento <em>server-side</em> -, as fun&ccedil;&otilde;es <a title="Sobre a fun&ccedil;&atilde;o echo, no manual oficial PHP." href="http://br2.php.net/echo">echo</a> e <a title="Sobre a fun&ccedil;&atilde;o print, no manual oficial PHP." href="http://br2.php.net/print">print</a> s&atilde;o as mais conhecidas. Entretanto, usar a fun&ccedil;&atilde;o <strong>echo</strong> &eacute; melhor, j&aacute; que, apesar de ambas servirem e realizarem a mesma coisa &#8211; exibir sa&iacute;das e informa&ccedil;&otilde;es &#8211; o desempenho de echo &eacute; melhor.</p>
<p>Portanto, prefira utilizar <strong>echo()</strong>!</p>
<h4>Aspas simples e aspas duplas</h4>
<p>Para exibir em tela o conte&uacute;do de uma vari&aacute;vel, &eacute; poss&iacute;vel utiliza as duplas (&#8220;) e escrever a vari&aacute;vel juntamente com o restante da exibi&ccedil;&atilde;o; ou utilizar aspas simples (&#8216;) e concatenar as vari&aacute;veis (.) com o restante da sa&iacute;da, de certa forma &#8220;isolando&#8221; as vari&aacute;veis do restante da exibi&ccedil;&atilde;o em tela.</p>
<p>&Eacute; melhor usar aspas simples com &#8220;isolamento&#8221; das vari&aacute;veis ao inv&eacute;s de aspas duplas com as vari&aacute;veis juntamente ao restante do conte&uacute;do. Portanto, prefira usar:</p>
<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// maneira menos eficiente</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Esta é uma maneira menos eficiente de exibir uma <span style="color: #006699; font-weight: bold;">$var</span>!&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// maneira mais eficiente</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Esta é uma maneira mais eficiente de exibir uma '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$var</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'!'</span><span style="color: #339933;">;</span></pre></div></div>
<p>E h&aacute; ainda uma maneira ainda r&aacute;pida e com melhor performance no PHP. Apesar de ser um pouco estranha esta sintaxe &#8211; pelo menos para mim -, os resultados em passar m&uacute;ltiplos par&acirc;metros &agrave; fun&ccedil;&atilde;o ao inv&eacute;s de realizar concatena&ccedil;&atilde;o s&atilde;o mais satisfat&oacute;rios:</p>
<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// maneira muito eficiente (com sintaxe estranha...)</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Maneira muito mais eficiente de exibir uma'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$var</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'!'</span><span style="color: #339933;">;</span></pre></div></div>
<h3>Otimiza&ccedil;&atilde;o de loops</h3>
<p>N&atilde;o h&aacute; que se falar em fazer um <em>web site</em> ou sistema em PHP sem falar em <strong>loops</strong>. E j&aacute; que s&atilde;o t&atilde;o utilizados &#8211; justamente por serem t&atilde;o indispens&aacute;veis -, &eacute; mais do que importante fazer <em>loops</em> PHP de &oacute;tima performance.</p>
<h4>Especifique previamente uma vari&aacute;vel para loops &#8220;for&#8221;</h4>
<p>Uma coisa muito comum de se fazer quando se est&aacute; programando em PHP &eacute; pegar a quantidade de &#8220;qualquer coisa&#8221; e, com ela, realizar um <em>loop</em> <strong>for</strong> para realizar outra &#8220;qualquer coisa&#8221;. E s&atilde;o muitos os programadores que, por falta de conhecimento ou <strong>pregui&ccedil;a</strong>, fazem isso:</p>
<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;=</span> <span style="color: #990000;">mysql_num_rows</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$resultado</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#91;</span>codigo<span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>
<p>Quando, na verdade, isso acarreta em um <strong>processamento extra para cada itera&ccedil;&atilde;o</strong>. Especificando previamente e colocando numa vari&aacute;vel quantas vezes o <em>looping</em> vai acontercer, a carga de processamento fica menor e, consequentemente, seu c&oacute;digo fica otimizado:</p>
<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$total</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_num_rows</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$resultado</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;=</span> <span style="color: #000088;">$total</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#91;</span>codigo<span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>
<h3>Otimiza&ccedil;&atilde;o de vari&aacute;veis e fun&ccedil;&otilde;es</h3>
<p>Desnecess&aacute;rio comentar sobre a import&acirc;ncia de vari&aacute;veis e fun&ccedil;&otilde;es em um script PHP, por mais simples que seja. Otimizar fun&ccedil;&otilde;es e vari&aacute;veis &eacute; mais que necess&aacute;rio, caso se esteja buscando um desempenho excelente. Essas s&atilde;o dicas r&aacute;pidas e eficientes:</p>
<ul>
<li>Utilizar <a title="Sobre a fun&ccedil;&atilde;o require, no manual oficial do PHP." href="http://uk.php.net/require">require</a> ao inv&eacute;s de <a title="Sobre a fun&ccedil;&atilde;o require_once, no manual oficial do PHP." href="http://uk.php.net/require_once">require_once</a>;</li>
<li>Usar caminhos absolutos ao inv&eacute;s de relativos em &#8220;includes&#8221;, &#8220;requires&#8221; e afins &eacute; melhor (embora possa gerar algum inconveniente futuro, por raz&otilde;es &oacute;bvias);</li>
<li>&#8220;else / if&#8221; &eacute; mais r&aacute;pido que &#8220;switch / case &#8220;;</li>
<li>Incrementar uma vari&aacute;vel local &eacute; quase 100% mais lento quando n&atilde;o se a especifica previamente.</li>
</ul>
<h3>Mais sobre otimiza&ccedil;&atilde;o de c&oacute;digos PHP</h3>
<p>&Eacute; de se imaginar que, pela &#8220;tradi&ccedil;&atilde;o&#8221; que tem o PHP e a extens&atilde;o que lhe &eacute; caracter&iacute;stica, estas dicas r&aacute;pidas n&atilde;o encerram o assunto. Para muitas outras dicas de como otimizar seus c&oacute;digos em PHP, considere ler os seguintes artigos (em ingl&ecirc;s):</p>
<ul>
<li><a href="http://progtuts.info/55/php-optimization-tips/">PHP Optimization Tips</a>;</li>
<li><a href="http://www.hm2k.com/posts/50-php-optimisation-tips-revisited">50+ PHP optimisation tips revisited</a>;</li>
<li><a href="http://reinholdweber.com/?p=3">40 Tips for optimizing your php code</a>;</li>
<li><a href="http://phplens.com/lens/php-book/optimizing-debugging-php.php">A HOWTO on Optimizing PHP</a>;</li>
<li><a href="http://blog.rightbrainnetworks.com/2006/09/18/10-things-you-probably-didnt-know-about-php/">10 things you (probably) didn’t know about PHP</a>.</li>
</ul>
<p><strong>E voc&ecirc;, tem alguma dica para otimizar seu c&oacute;digo PHP?</strong></p>
<h3  class="related_post_title">Artigos Relacionados</h3><ul class="related_post"><li><a href="http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/" title="URLs amigáveis (slug) à WordPress">URLs amigáveis (slug) à WordPress</a></li><li><a href="http://desenvolvimentoparaweb.com/miscelanea/8-maneiras-de-melhorar-a-performance-de-um-site/" title="8 maneiras de melhorar a performance de um site">8 maneiras de melhorar a performance de um site</a></li><li><a href="http://desenvolvimentoparaweb.com/usabilidade/user-interface-dicas-rapidas/" title="User Interface em dicas rápidas">User Interface em dicas rápidas</a></li><li><a href="http://desenvolvimentoparaweb.com/wordpress/otimizacao-wordpress-performance-desempenho-blog-site/" title="Otimização WordPress: aumente a performance e desempenho de seu blog / site">Otimização WordPress: aumente a performance e desempenho de seu blog / site</a></li><li><a href="http://desenvolvimentoparaweb.com/jquery/8-dicas-fazer-codigos-melhores-jquery/" title="8 dicas para fazer códigos melhores com jQuery">8 dicas para fazer códigos melhores com jQuery</a></li><li><a href="http://desenvolvimentoparaweb.com/miscelanea/jetpack-explorando-novas-maneiras-de-ampliar-e-personalizar-a-web/" title="Jetpack: explorando novas maneiras de ampliar e personalizar a web">Jetpack: explorando novas maneiras de ampliar e personalizar a web</a></li><li><a href="http://desenvolvimentoparaweb.com/usabilidade/pergunte-se-a-si-mesmo-questoes-para-desenvolver-um-bom-site/" title="Pergunte-se a si mesmo: questões para desenvolver um bom site">Pergunte-se a si mesmo: questões para desenvolver um bom site</a></li><li><a href="http://desenvolvimentoparaweb.com/php/swift-mailer-solucao-php-para-envio-de-e-mails/" title="Swift Mailer: solução PHP para envio de e-mails">Swift Mailer: solução PHP para envio de e-mails</a></li><li><a href="http://desenvolvimentoparaweb.com/php/como-pegar-parte-do-conteudo-dados-de-outro-site-com-php/" title="Como pegar parte do conteúdo (dados) de outro site com PHP">Como pegar parte do conteúdo (dados) de outro site com PHP</a></li><li><a href="http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/" title="Erros comuns em desenvolvimento web para campanhas de SEO">Erros comuns em desenvolvimento web para campanhas de SEO</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://desenvolvimentoparaweb.com/php/dicas-para-otimizar-codigos-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Swift Mailer: solu&#231;&#227;o PHP para envio de e-mails</title>
		<link>http://desenvolvimentoparaweb.com/php/swift-mailer-solucao-php-para-envio-de-e-mails/</link>
		<comments>http://desenvolvimentoparaweb.com/php/swift-mailer-solucao-php-para-envio-de-e-mails/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 20:45:42 +0000</pubDate>
		<dc:creator>Tárcio Zemel</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[classe]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[oo]]></category>
		<category><![CDATA[programação]]></category>
		<guid isPermaLink="false">http://www.desenvolvimentoparaweb.com/?p=212</guid>
		<description><![CDATA[Swift Mailer &eacute; uma classe PHP com solu&ccedil;&atilde;o completa para o envio de e-mails; conhe&ccedil;a mais sobre esta biblioteca PHP para facilitar o envio de e-mails]]></description>
			<content:encoded><![CDATA[<p>Uma das partes mais importantes em um <em>web site</em> &eacute; a &aacute;rea de contato. Quer seja um site insitucional, com&eacute;rcio eletr&ocirc;nico, <em>blog</em>, <em>site</em> pessoal ou outros, uma &aacute;rea especialmente dedicada ao envio de mensagens &eacute; essencial, j&aacute; que esta &eacute; a &#8220;ponte&#8221; entre voc&ecirc; (ou a loja, a institui&ccedil;&atilde;o, a f&aacute;brica, o prestador de servi&ccedil;os, etc) e aquele que visita o espa&ccedil;o virtual.</p>
<p>Para melhorar o tempo do projeto e agilidade e performance da aplica&ccedil;&atilde;o, por vezes &eacute; vantajoso optar por uma solu&ccedil;&atilde;o pronta para envio de <em>e-mails</em>, o que poupa enorme investimento de tempo (custo de oportunidade) e permite desfrutar de uma solu&ccedil;&atilde;o eficiente para envio de mensagens atrav&eacute;s de <em>e-mail</em>, uma biblioteca idealizada e feita visando tal objetivo.</p>
<h3>Swift Mailer</h3>
<p><a title="P&aacute;gina oficial do Swift Mailer." href="http://www.swiftmailer.org/">Swift Mailer</a> &eacute; uma biblioteca PHP &#8211; orientado a objeto &#8211; que tem por finalidade facilitar, agilizar e servir como ferramenta &uacute;til e eficaz para envio de <em>e-mails</em> em <em>web sites</em> e aplica&ccedil;&otilde;es <em>online</em>, em geral. <strong>Enviar e-mails de forma f&aacute;cil com PHP</strong> &eacute; o que &eacute; poss&iacute;vel quando se utiliza Swift Mailer.</p>
<h3>Caracter&iacute;sticas do Swift Mailer</h3>
<p>O Swift Mailer n&atilde;o &eacute; simplesmente uma biblioteca PHP para tornar f&aacute;cil de se usar a fun&ccedil;&atilde;o <a title="Mais sobre a fun&ccedil;&atilde;o mail(), no W3Schools." href="http://www.w3schools.com/PHP/php_mail.asp">mail()</a>, nativa do PHP. Ele prov&ecirc; muito mais recursos e possibilidades &#8211; como citado, Swift Mailer &eacute; uma <strong>biblioteca PHP para envio de e-mails</strong> e, como tal, possui diversas caracteristicas para isso; caracter&iacute;sticas essas que o tornam uma <strong>solu&ccedil;&atilde;o completa em PHP para enviar e-mails</strong>.</p>
<p>As caracter&iacute;sticas principais do Swift Mailer s&atilde;o:</p>
<ul>
<li>Envio de <em>e-mail</em> usando o protocolo SMTP ou MTA, o que tem performance superior que usar a fun&ccedil;&atilde;o nativa mail();</li>
<li>Controle de cabe&ccedil;alho com <a title="Mais sobre RFC 2822." href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>;</li>
<li>Internacionaliza&ccedil;&atilde;o (<a title="Mais sobre i18n, na Wikip&eacute;dia." href="http://pt.wikipedia.org/wiki/Internacionaliza%C3%A7%C3%A3o_(software)">i18n</a>);</li>
<li>Suporte SSL &amp; TLS (para servidores GMail);</li>
<li>Inclus&atilde;o de arquivos anexos e imagens diretamente no corpo das mensagens;</li>
<li>Controle de prioridade de mensagens;</li>
<li>Monitoramente de gasto de banda;</li>
<li>E-mails com CC e CCo;</li>
<li>Envio de <em>newsletters</em>;</li>
<li>Dentre outras caracter&iacute;sticas.</li>
</ul>
<p>Enfim, devido a estas caracter&iacute;sticas listadas &#8211; e olha que tem muito mais! -, &eacute; poss&iacute;vel perceber que o Swift Mailer &eacute; uma maneira f&aacute;cil de enviar <em>e-mails</em> (com arquivos anexos, imagens no corpo da mensagem, etc) de forma r&aacute;pida, automatizada e, consequentemente, bem f&aacute;cil.</p>
<h3>Como usar o Swift Mailer</h3>
<p>No pr&oacute;prio <a title="Visitar site oficial do Swift Mailer." href="http://www.swiftmailer.org/"><em>site</em> oficial do Swift Mailer</a> h&aacute; uma s&eacute;rie de documentos, tutoriais e exemplos para quem ainda n&atilde;o usa a biblioteca, passar a us&aacute;-la e n&atilde;o sentir dificuldades em conhecer seu funcionamento.</p>
<p>Atrav&eacute;s de <a href="http://www.swiftmailer.org/wikidocs/#library_api_reference">explica&ccedil;&otilde;es sobre a API do Swift Mailer</a>, manual de <a href="http://www.swiftmailer.org/wikidocs/#installation">instala&ccedil;&atilde;o</a>, configura&ccedil;&atilde;o e uso, <a href="http://www.swiftmailer.org/wikidocs/#tips_tricks">dicas e truques</a>, <a href="http://www.swiftmailer.org/wikidocs/#frequently_asked_questions">perguntas mais frequentes</a>, <a href="http://forums.devnetwork.net/viewforum.php?f=52">f&oacute;rum</a> e <a href="http://www.swiftmailer.org/wikidocs/">outros tipos de textos de ajuda e explica&ccedil;&atilde;o sobre Swift Mailer</a>, &eacute; poss&iacute;vel conhecer e estudar mais a fundo esta aplica&ccedil;&atilde;o PHP para envio de <em>e-mails</em>.</p>
<h3>Baixe logo o Swift Mailer!</h3>
<p>Pessoalmente, como &#8220;sofredor&#8221; de alguns projetos que exigiram um pouco mais de recursos para envio de mensagens, posso afirmar que uma solu&ccedil;&atilde;o completa para envio de mensagens por <em>e-mail</em> como o Swift Mailer &eacute; realmente uma valiosa aquisi&ccedil;&atilde;o para se ter na biblioteca particular de <em>scripts</em> &#8211; todo programador tem uma! :-D</p>
<p>Com Swift Mailer &eacute; realmente muito simples r&aacute;pido o envio de mensagem por <em>e-mails</em>, em <em>web sites</em>, aplica&ccedil;&otilde;es <em>online</em> e sistemas virtuais de qualquer porte; desde um simples formul&aacute;rio de contato ao envio de <em>newsletters</em>. Com a biblioteca Swift Mailer certamente os problemas relacionados ao envio de <em>emails</em> est&atilde;o com os dias contados e sua produtividade e despreocupa&ccedil;&atilde;o com esta parte do desenvolvimento para <em>web</em>, tamb&eacute;m.</p>
<div class="link"><a title="Visitar a p&aacute;gina oficial do Swift Mailer." href="http://www.swiftmailer.org/">P&aacute;gina oficial do Swift Mailer</a>.</div>
<h3  class="related_post_title">Artigos Relacionados</h3><ul class="related_post"><li><a href="http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/" title="URLs amigáveis (slug) à WordPress">URLs amigáveis (slug) à WordPress</a></li><li><a href="http://desenvolvimentoparaweb.com/php/dicas-para-otimizar-codigos-php/" title="Dicas para otimizar códigos PHP">Dicas para otimizar códigos PHP</a></li><li><a href="http://desenvolvimentoparaweb.com/php/como-pegar-parte-do-conteudo-dados-de-outro-site-com-php/" title="Como pegar parte do conteúdo (dados) de outro site com PHP">Como pegar parte do conteúdo (dados) de outro site com PHP</a></li><li><a href="http://desenvolvimentoparaweb.com/jquery/8-dicas-fazer-codigos-melhores-jquery/" title="8 dicas para fazer códigos melhores com jQuery">8 dicas para fazer códigos melhores com jQuery</a></li><li><a href="http://desenvolvimentoparaweb.com/miscelanea/jetpack-explorando-novas-maneiras-de-ampliar-e-personalizar-a-web/" title="Jetpack: explorando novas maneiras de ampliar e personalizar a web">Jetpack: explorando novas maneiras de ampliar e personalizar a web</a></li><li><a href="http://desenvolvimentoparaweb.com/jquery/como-criar-sumarios-dinamicamente-com-o-toc-table-of-contents-jquery-plugin-jquerytoc/" title="Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin">Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://desenvolvimentoparaweb.com/php/swift-mailer-solucao-php-para-envio-de-e-mails/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Como pegar parte do conte&#250;do (dados) de outro site com PHP</title>
		<link>http://desenvolvimentoparaweb.com/php/como-pegar-parte-do-conteudo-dados-de-outro-site-com-php/</link>
		<comments>http://desenvolvimentoparaweb.com/php/como-pegar-parte-do-conteudo-dados-de-outro-site-com-php/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 16:43:06 +0000</pubDate>
		<dc:creator>Tárcio Zemel</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[expressões regulares]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[web site]]></category>
		<guid isPermaLink="false">http://www.desenvolvimentoparaweb.com/php/como-pegar-parte-do-conteudo-dados-de-outro-site-com-php/</guid>
		<description><![CDATA[Aprenda a pegar parte do conte&uacute;do (dados) de outros sites codificando em PHP, utilizando express&otilde;es regulares]]></description>
			<content:encoded><![CDATA[<p>Pegar parte do conte&uacute;do de outro <span lang="en"><em>site</em></span> foi a tarefa que tive que fazer. Pensei que seria bem f&aacute;cil, mas as coisas n&atilde;o sa&iacute;ram exatamente como eu planejava&#8230; Felizmente, consegui! Aprenda, voc&ecirc;, tamb&eacute;m, como coletar informa&ccedil;&otilde;es de outros <span lang="en">sites</span> na <span lang="en"><em>internet</em></span>.</p>
<h3>A miss&atilde;o: pegar parte do conte&uacute;do de um <span lang="en"><em>site</em></span></h3>
<p>Hoje, no trabalho, tive a miss&atilde;o de &#8220;puxar&#8221; alguns dados de um <span lang="en"><em>site</em></span> para &#8220;enxertar&#8221; num trecho de um <span lang="en"><em>web site</em></span> que estou ajudando a desenvolver. Quando a tarefa me foi passada, logo lembrei de uma ocasi&atilde;o em que um amigo fez a mesma coisa (e, na &eacute;poca, ele me explicou, mais ou menos, com o fez). Pensei que seria muito f&aacute;cil realizar a tarefa, mas, na hora, &#8220;lembrei&#8221; que n&atilde;o sou t&atilde;o bom quanto o <a title="Visitar o blog do Gev&atilde;." rel="home friend met colleague" href="http://gevaspm.wordpress.com/">Gev&atilde;</a>&#8230; rsrs</p>
<h3>A solu&ccedil;&atilde;o: fun&ccedil;&otilde;es nativas do PHP e express&otilde;es regulares</h3>
<p>Passei para pesquisas na <span lang="en"><em>web</em></span>, procurando desesperadamente material de refer&ecirc;ncia sobre <strong>express&otilde;es regulares</strong> (que, como ver&atilde;o, &eacute; um dos pilares para se conseguir pegar parte do conte&uacute;do de outro <span lang="en"><em>site</em></span>). Procura daqui, procura de l&aacute;, at&eacute; bate-papo com o Gev&atilde; rolou para eu tentar entender melhor as tais express&otilde;es regulares. At&eacute; que, utilizando um pouco de &#8220;gambiarra&#8221;, consegui realizar meu objetivo.</p>
<p>A primeira coisa a se fazer, &eacute; pegar o conte&uacute;do da p&aacute;gina inteira que se quer &#8220;manipular&#8221;. Para tal, usa-se, por exemplo, a <a title="Consultar o manual oficial do PHP sobre a fun&ccedil;&atilde;o file_get_contents." href="http://br2.php.net/file_get_contents">fun&ccedil;&atilde;o file_get_contents()</a>. Jogando o conte&uacute;do do <span lang="en"><em>site</em></span> numa vari&aacute;vel, ficaria assim (vou fazer o exemplo com o mesmo <span lang="en"><em>site</em></span> que tive que mexer):</p>
<p><kbd></kbd></p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://www.bcb.gov.br/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>
<p>Pronto, agora a vari&aacute;vel <var>$url</var> cont&eacute;m, em <span lang="en"><em>string</em></span>, todo o conte&uacute;do da p&aacute;gina inicial do <a title="Visitar a home page do Banco Central do Brasil." rel="home" href="http://www.bcb.gov.br/">BCB</a>.</p>
<h4>Express&otilde;es regulares</h4>
<p>At&eacute; aqui foi f&aacute;cil; o dif&iacute;cil foi pegar somente o trecho da p&aacute;gina que eu queria&#8230; Para isso, &eacute; preciso usar <strong>express&otilde;es regulares</strong>!</p>
<p>Caso voc&ecirc; n&atilde;o saiba o que s&atilde;o express&otilde;es regulares, a&iacute; vai uma sucinta (e incompleta&#8230;) <a title="Ler o artigo completo da Wikip&eacute;dia sobre express&otilde;es regulares." href="http://pt.wikipedia.org/wiki/Express%C3%A3o_regular">explica&ccedil;&atilde;o de o que s&atilde;o express&otilde;es regulares, da Wikip&eacute;dia</a>:</p>
<blockquote><p>Uma express&atilde;o regular, na Inform&aacute;tica, define um padr&atilde;o a ser usado para procurar ou substituir palavras ou grupos de palavras. &Eacute; um meio preciso de se fazer buscas de determinadas por&ccedil;&otilde;es de texto.</p></blockquote>
<p>Com as express&otilde;es regulares &eacute; poss&iacute;vel identificar trechos de palavras ou grupos de palavras que correspondem (&#8220;<span lang="en"><em>match</em></span>&#8220;) a um determinado padr&atilde;o (&#8220;<span lang="en"><em>pattern</em></span>&#8220;), que &eacute; &#8220;regular&#8221;.</p>
<p>O PHP tem <a title="P&aacute;gina do manual oficial do PHP sobre express&otilde;es regulares." href="http://br.php.net/manual/pt_BR/ref.regex.php">v&aacute;rias fun&ccedil;&otilde;es nativas</a> para trabalhar com express&otilde;es regulares. Basta saber para o que cada uma serve e usar da meneira correta.</p>
<p>Bem, o pr&oacute;ximo passo para resolu&ccedil;&atilde;o do problema &eacute; identificar o padr&atilde;o que se quer extrair do <span lang="en"><em>site</em></span>. No caso, eu precisei de uma tabela com algumas taxas cambiais (encontra-se &agrave; direita, no <span lang="en"><em>site</em></span> do BCB). Observando o c&oacute;digo fonte, vi que as informa&ccedil;&otilde;es est&atilde;o em uma tabela (abordagem semanticamente correta!); al&eacute;m disso, esta tabela est&aacute; envolta entre os coment&aacute;rios HTML &#8220;&lt;!- &#8211; INICIO INDICADORES &#8211; -&gt;&#8221; e &#8220;&lt;!- &#8211; FIMINDICADORES &#8211; -&gt;&#8221;. Isso &eacute; uma coisa boa, j&aacute; que facilita bastante a &#8220;identifica&ccedil;&atilde;o do padr&atilde;o&#8221;.</p>
<p>Explicando melhor: o padr&atilde;o procurado, no caso, &eacute; tudo o que est&aacute; entre os coment&aacute;rios HTML &#8220;&lt;!- &#8211; INICIO INDICADORES &#8211; -&gt;&#8221; e &#8220;&lt;!- &#8211; FIMINDICADORES &#8211; -&gt;&#8221;. Toda a tabela est&aacute; a&iacute;, para a minha felicidade! :-)</p>
<p>Ent&atilde;o, tudo o que &eacute; preciso fazer &eacute; utilizar uma fun&ccedil;&atilde;o PHP (para o caso, escolhi a <a title="P&aacute;gina do manual oficial do PHP sobre a fun&ccedil;&atilde;o preg_match_all." href="http://br.php.net/manual/pt_BR/function.preg-match-all.php">preg_match_all()</a>) para procurar uma <strong>express&atilde;o regular</strong> dentro da vari&aacute;vel <var>$url</var>, que cont&eacute;m toda a primeira p&aacute;gina do <span lang="en"><em>site</em></span> em que est&aacute; a tabela.</p>
<p>Depois de muito tempo testando v&aacute;&aacute;&aacute;rias express&otilde;es regulares, cheguei &agrave; conclus&atilde;o que faria uma pequena mutreta. Mas, antes, deixe-me mostrar como est&aacute; o c&oacute;digo at&eacute; agora.</p>
<p><kbd></p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://www.bcb.gov.br/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/ORES--&amp;gt;(.+)&lt;!--/s'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$url</span><span style="color: #339933;">,</span> <span style="color: #000088;">$conteudo</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>
<p></kbd></p>
<p>Explicando: o primeiro argumento da fun&ccedil;&atilde;o, &eacute; o padr&atilde;o que quero procurar; o segundo, &eacute; onde vou procurar; o terceiro, guarda em um <span lang="en"><i>array</i></span> todas as ocorr&ecirc;ncias da express&atilde;o procurada. Para a maioria dos casos, talvez j&aacute; estivesse bom, por aqui; entretanto, no problema que tive, ainda &eacute; preciso mais algumas linhas de c&oacute;digo.</p>
<p>No momento, a vari&aacute;vel <var>$conteudo</var> cont&eacute;m um <span lang="en"><i>array</i></span> com as ocorr&ecirc;ncias encontradas. Usando um <a title="P&aacute;gina do manual oficial do PHP sobre a fun&ccedil;&atilde;o print_r." href="http://br.php.net/manual/pt_BR/function.print-r.php" mce_href="http://br.php.net/manual/pt_BR/function.print-r.php">print_r()</a>, descobri em qual posi&ccedil;&atilde;o, exatamente, o que eu procurava estava: <var>$conteudo[0][0]</var>.</p>
<h4>Fazendo uma &#8220;mutreta&#8221;</h4>
<p>Para fazer a tal &#8220;mutreta&#8221;, jogo o conte&uacute;do desta posi&ccedil;&atilde;o da matriz para uma outra vari&aacute;vel (para facilitar a manipula&ccedil;&atilde;o).</p>
<p><kbd></p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://www.bcb.gov.br/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/ORES--&gt;(.+)&lt;!--/s'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$url</span><span style="color: #339933;">,</span> <span style="color: #000088;">$conteudo</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$exibir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$conteudo</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>
<p></kbd></p>
<p>Havia trechos do que me foi retornado (ou seja, da tabela com as taxas cambiais) que eu n&atilde;o queria que aparecessem no <span lang="en"><i>site</i></span> (como alguns links). Ent&atilde;o, resolvi retir&aacute;-los atrav&eacute;s da fun&ccedil;&atilde;o <a title="P&aacute;gina do manual oficial do PHP sobre a fun&ccedil;&atilde;o str_replace." href="http://br.php.net/manual/pt_BR/function.str-replace.php" mce_href="http://br.php.net/manual/pt_BR/function.str-replace.php">str_replace()</a>, que substitui trechos de <span lang="en"><i>strings</i></span>. &Eacute; poss&iacute;vel, como argumento, passar um array. Ent&atilde;o, por enquanto e quase no fim, o c&oacute;digo est&aacute; assim:</p>
<p><kbd></p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://www.bcb.gov.br/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/ORES--&gt;(.+)&lt;!--/s'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$url</span><span style="color: #339933;">,</span> <span style="color: #000088;">$conteudo</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$exibir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$conteudo</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$retirar</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mais moedas'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'atas Copom'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'mais detalhes'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ORES--&gt;'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&lt;!--'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$exibir</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$retirar</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$exibir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>
<p></kbd></p>
<p>Ou seja: sempre que aparecer alguns dos itens do <span lang="en"><i>array</i></span> <var>$retirar</var> em <var>$exibir</var>, ser&aacute; substitu&iacute;do por &#8220;&#8221; (nada&#8230;). Perceba que os &uacute;ltimos dois elementos do <span lang="en"><i>array</i></span> s&atilde;o &#8220;polui&ccedil;&otilde;es&#8221; desnecess&aacute;rias, que vieram devido &agrave; minha pregui&ccedil;a de fazer uma express&atilde;o regular mais elaborada. :-)</p>
<h4>Finalizando&#8230;</h4>
<p>Depois disso, basta mandar exibir na tela o que &#8220;sobrou&#8221; do conte&uacute;do retira da p&aacute;gina inicial do <span lang="en"><i>site</i></span> do BCB.</p>
<p><kbd></p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://www.bcb.gov.br/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/ORES--&gt;(.+)&lt;!--/s'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$url</span><span style="color: #339933;">,</span> <span style="color: #000088;">$conteudo</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$exibir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$conteudo</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;;</span>
<span style="color: #000088;">$retirar</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mais moedas'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'atas Copom'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'mais detalhes'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ORES--&gt;'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&lt;!--'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$exibir</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$retirar</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$exibir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$exibir</span><span style="color: #339933;">;</span></pre></td></tr></table></div>
<h3>E se o servidor n&atilde;o permite a fun&ccedil;&atilde;o file_get_contents() ?</h3>
<p>H&aacute; muitos servidores que, por motivos diversos (principalmente "seguran&ccedil;a"), n&atilde;o permitem que se utilize a fun&ccedil;&atilde;o <strong>file_get_contents()</strong>. Para esses casos, &eacute; poss&iacute;vel colocar numa vari&aacute;vel alguma p&aacute;gina externa utilizando o seguinte c&oacute;digo (depois voc&ecirc; procura as explica&ccedil;&otilde;es no <a title="Ler o manual oficial do PHP (leitura extensa...)." href="http://www.php.net/manual/pt_BR/">manual oficial do PHP</a>):</p>
<p><kbd></p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$ch</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$timeout</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #0000ff;">'O_SITE_QUE_VOCE_QUER'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_CONNECTTIMEOUT<span style="color: #339933;">,</span> <span style="color: #000088;">$timeout</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$conteudo</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>
<p></kbd></p>
<p>Ent&atilde;o, o conte&uacute;do da p&aacute;gina "O_SITE_QUE_VOCE_QUER" estar&aacute; na vari&aacute;vel <var>$conteudo</var>.</p>
<h3>Conclus&atilde;o</h3>
<p>Ent&atilde;o, pessoal, para se retirar uma parte do conte&uacute;do de um <span lang="en"><em>web site</em></span> (utilizando PHP), os passos s&atilde;o:</p>
<ul>
<li>Saber em qual p&aacute;gina est&aacute; o conte&uacute;do que se precisa;</li>
<li>Jogar o conte&uacute;do do <span lang="en"><em>site</em></span> em uma vari&aacute;vel;</li>
<li>Extrair o trecho que se quer utilizando express&otilde;es regulares;</li>
<li>Se preciso, cortar mais algumas coisas do resultado da ER;</li>
<li>Exibir em tela o resultado final.</li>
</ul>
<p>O grande <strong>pulo do gato</strong>, neste caso, &eacute; saber mexer com express&otilde;es regulares; coisa que, sinto informar, s&oacute; se aprende fazendo! E fazendo muito! Leia as refer&ecirc;ncias no fim deste artigo e procure na internet mais material a respeito.</p>
<p>Uma outra coisa importante &eacute; o seguinte: tenha sempre em mente que, como voc&ecirc; est&aacute; pegando o conte&uacute;do de um <span lang="en"><em>site</em></span>, caso este altere sua estrutura, muito provavelmente ser&aacute; preciso alterar a express&atilde;o regular, tamb&eacute;m.</p>
<p>Fique ciente de uma coisa: se voc&ecirc;, desenvolvedor <span lang="en"><em>web</em></span>, ainda n&atilde;o precisou usar express&otilde;es regulares, pode ter certeza de que sua hora vai chegar!</p>
<div class="referenciasNacionais">
<h3>Refer&ecirc;ncias Nacionais</h3>
<p><a rel="home colleague" href="http://guia-er.sourceforge.net/">Express&otilde;es Regulares - Guia de Consulta R&aacute;pida</a></p>
<p>Este &eacute; o guia de <a title="Mais informa&ccedil;&otilde;es sobre o Aurelio." rel="colleague" href="http://aurelio.net/mim.html">Aur&eacute;lio Marinho Jargas</a>, excelente para se aprender express&otilde;es regulares e para se consultar nos momentos de aperto!</p>
<p><a rel="colleague" href="http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1418">Express&otilde;es Regulares no PHP</a></p>
<p>Artigo do <a href="http://www.vivaolinux.com.br/">Viva o Linux</a>, de <a href="http://www.vivaolinux.com.br/perfil/verPerfil.php?login=gatecrasher">Marcelo Santos Araujo</a>, com uma introdu&ccedil;&atilde;o sobre express&otilde;es regulares.</div>
<div class="referenciasNacionais">
<h3>Refer&ecirc;ncias Internacionais</h3>
<p><a rel="home" href="http://www.regular-expressions.info/"><span lang="en">Regular-Expressions.info</span></a></p>
<p><span lang="en"><em>Site</em></span> especialmente dedicado &agrave;s express&otilde;es regulares.</p>
<p><a href="http://regexlib.com/"><span lang="en">Regular Expression Library</span></a></p>
<p>Biblioteca virtual de express&otilde;es regulares.</p>
<p><a href="http://www.gskinner.com/RegExr/"><span lang="en">RegExr</span></a></p>
<p>Para testar express&otilde;es regulares em tempo real!</p></div>
</pre>
<h3  class="related_post_title">Artigos Relacionados</h3><ul class="related_post"><li><a href="http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/" title="URLs amigáveis (slug) à WordPress">URLs amigáveis (slug) à WordPress</a></li><li><a href="http://desenvolvimentoparaweb.com/php/dicas-para-otimizar-codigos-php/" title="Dicas para otimizar códigos PHP">Dicas para otimizar códigos PHP</a></li><li><a href="http://desenvolvimentoparaweb.com/php/swift-mailer-solucao-php-para-envio-de-e-mails/" title="Swift Mailer: solução PHP para envio de e-mails">Swift Mailer: solução PHP para envio de e-mails</a></li><li><a href="http://desenvolvimentoparaweb.com/seo/6-mitos-seo-voce-deve-evitar/" title="6 mitos de SEO que você deve evitar">6 mitos de SEO que você deve evitar</a></li><li><a href="http://desenvolvimentoparaweb.com/jquery/8-dicas-fazer-codigos-melhores-jquery/" title="8 dicas para fazer códigos melhores com jQuery">8 dicas para fazer códigos melhores com jQuery</a></li><li><a href="http://desenvolvimentoparaweb.com/miscelanea/jetpack-explorando-novas-maneiras-de-ampliar-e-personalizar-a-web/" title="Jetpack: explorando novas maneiras de ampliar e personalizar a web">Jetpack: explorando novas maneiras de ampliar e personalizar a web</a></li><li><a href="http://desenvolvimentoparaweb.com/jquery/como-criar-sumarios-dinamicamente-com-o-toc-table-of-contents-jquery-plugin-jquerytoc/" title="Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin">Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin</a></li><li><a href="http://desenvolvimentoparaweb.com/miscelanea/como-tirar-screenshot-de-um-web-site-inteiro-e-obter-uma-imagem-completa/" title="Como tirar screenshot de um web site inteiro e obter uma imagem completa">Como tirar screenshot de um web site inteiro e obter uma imagem completa</a></li><li><a href="http://desenvolvimentoparaweb.com/indicacoes/aprenda-a-escolher-as-melhores-palavras-chave-para-a-otimizacao-de-seu-site/" title="Aprenda a escolher as melhores palavras-chave para a otimização de seu site">Aprenda a escolher as melhores palavras-chave para a otimização de seu site</a></li><li><a href="http://desenvolvimentoparaweb.com/seo/as-melhores-praticas-de-seo-para-melhorar-posicionamento-mecanismos-de-busca/" title="As melhores práticas de SEO para seu site ou blog melhorar o posicionamento nos mecanismos de busca">As melhores práticas de SEO para seu site ou blog melhorar o posicionamento nos mecanismos de busca</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://desenvolvimentoparaweb.com/php/como-pegar-parte-do-conteudo-dados-de-outro-site-com-php/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
	</channel>
</rss>
