<?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>Zend Framework по-русски &#187; Zend_Validate_Hostname</title>
	<atom:link href="http://zend-framework.ru/tag/zend_validate_hostname/feed/" rel="self" type="application/rss+xml" />
	<link>http://zend-framework.ru</link>
	<description>Статьи, руководства и заметки о фреймворке для PHP - Zend Framework</description>
	<lastBuildDate>Sun, 25 Dec 2011 06:51:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Валидация URL</title>
		<link>http://zend-framework.ru/validaciya-url/</link>
		<comments>http://zend-framework.ru/validaciya-url/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 11:23:00 +0000</pubDate>
		<dc:creator>Сергей</dc:creator>
				<category><![CDATA[Руководства]]></category>
		<category><![CDATA[Формы и обработка входных данных]]></category>
		<category><![CDATA[URI]]></category>
		<category><![CDATA[Zend_Form]]></category>
		<category><![CDATA[Zend_Validate]]></category>
		<category><![CDATA[Zend_Validate_Hostname]]></category>

		<guid isPermaLink="false">http://zend-framework.ru/2008/08/validaciya-url/</guid>
		<description><![CDATA[Для валидации URL существует валидатор Zend_Validate_Hostname. Однако для большинства случаев он слишком мощный и выдаёт слишком детальные сообщения об ошибках, непонятные обычным пользователям. На сайте LAMPComputing появилось руководство по написанию собственного валидатора для проверки URL-адресов. Предлагается следующий валидатор: 1234567891011121314151617181920212223242526class BV_Validate_Uri extends Zend_Validate_Abstract &#123; &#160; &#160; const MSG_URI = 'msgUri'; &#160; &#160; protected $_messageTemplates = array&#40; [...]]]></description>
			<content:encoded><![CDATA[<p>Для валидации URL существует валидатор Zend_Validate_Hostname. Однако для большинства случаев он слишком мощный и выдаёт слишком детальные сообщения об ошибках, непонятные обычным пользователям.<br />
На сайте <a href="http://lampcomputing.com/">LAMPComputing</a> появилось <a href="http://lampcomputing.com/validate-uri-form-fields-zend-framework-custom-validator">руководство по написанию собственного валидатора для проверки URL-адресов</a>. Предлагается следующий валидатор:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">class</span> BV_Validate_Uri <span class="kw2">extends</span> Zend_Validate_Abstract<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw2">const</span> MSG_URI <span class="sy0">=</span> <span class="st_h">'msgUri'</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; protected <span class="re0">$_messageTemplates</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span><span class="sy0">::</span><span class="me2">MSG_URI</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;Invalid URI&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; <span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw2">function</span> isValid<span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span><span class="sy0">-&gt;</span>_setValue<span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Validate the URI</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$valid</span> <span class="sy0">=</span> Zend_Uri<span class="sy0">::</span><span class="me2">check</span><span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Return validation result TRUE|FALSE &nbsp;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$valid</span><span class="br0">&#41;</span> &nbsp;<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">true</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span><span class="sy0">-&gt;</span>_error<span class="br0">&#40;</span><span class="kw2">self</span><span class="sy0">::</span><span class="me2">MSG_URI</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>Как видите, ничего лишнего. Минимум необходимого функционала.</p>
<p>Интегрируется валидатор с Zend_Form стандартными средствами:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$website</span> <span class="sy0">=</span> <span class="re0">$form</span><span class="sy0">-&gt;</span><span class="me1">createElement</span><span class="br0">&#40;</span><span class="st_h">'text'</span><span class="sy0">,</span> <span class="st_h">'website'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="re0">$website</span><span class="sy0">-&gt;</span><span class="me1">setLabel</span><span class="br0">&#40;</span><span class="st_h">'Website URL'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="re0">$website</span><span class="sy0">-&gt;</span><span class="me1">addValidator</span><span class="br0">&#40;</span><span class="kw2">new</span> BV_Validate_Uri<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><a href="http://lampcomputing.com/validate-uri-form-fields-zend-framework-custom-validator">Полный вариант статьи про валидацию URI при помощи Zend_Framework</a></p>
<hr />
<p><small>
<a href="http://zend-framework.ru/validaciya-url/#comments">2 comments</a>
<br/>
Post tags: <a href="http://zend-framework.ru/tag/uri/" rel="tag">URI</a>, <a href="http://zend-framework.ru/tag/zend_form/" rel="tag">Zend_Form</a>, <a href="http://zend-framework.ru/tag/zend_validate/" rel="tag">Zend_Validate</a>, <a href="http://zend-framework.ru/tag/zend_validate_hostname/" rel="tag">Zend_Validate_Hostname</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://zend-framework.ru/validaciya-url/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

