tag:forum.selfhtml.org,2005:/self preg_replace, Ausgabeproblem – SELFHTML-Forum 2011-09-19T08:32:16Z https://forum.selfhtml.org/self/2011/sep/18/preg_replace-ausgabeproblem/1525647#m1525647 Sandra 2011-09-18T12:45:45Z 2011-09-18T12:45:45Z preg_replace, Ausgabeproblem <p>Ich möchte mittels preg_replace prüfen ob nur Buchstaben in meiner Ariable<br> sind, bei einem Fehler wie einer Zahl soll es eine Fehlermeldung geben!<br> Aber es haut nicht hin so wie ich es will?</p> <p>$test='testwort1';</p> <p>if (preg_replace ( '~[^a-z/>]~i', '',$test ))<br> {<br> echo 'Verbotenes Zeichen!';<br> };</p> https://forum.selfhtml.org/self/2011/sep/18/preg_replace-ausgabeproblem/1525650#m1525650 ChrisB 2011-09-18T12:50:27Z 2011-09-18T12:50:27Z preg_replace, Ausgabeproblem <p>Hi,</p> <blockquote> <p>Ich möchte mittels preg_replace prüfen ob nur Buchstaben in meiner Ariable<br> sind, bei einem Fehler wie einer Zahl soll es eine Fehlermeldung geben!<br> Aber es haut nicht hin so wie ich es will?</p> <p>$test='testwort1';</p> <p>if (preg_replace ( '~[^a-z/>]~i', '',$test ))<br> {<br> echo 'Verbotenes Zeichen!';<br> };</p> </blockquote> <p>Biete lies im Handbuch nach, was der Rückgabewert von preg_replace ist und aussagt. Und lass dir mittels var_dump ausgeben, was dein preg_replace im konkreten Fall zurückgibt.</p> <p>Wenn du wirklich nur prüfen willst – dann verwende preg_match.</p> <p>MfG ChrisB</p> <div class="signature">-- <br> RGB is totally confusing - I mean, at least #C0FFEE should be brown, right? </div> https://forum.selfhtml.org/self/2011/sep/18/preg_replace-ausgabeproblem/1525648#m1525648 tk 2011-09-18T12:51:27Z 2011-09-18T12:51:27Z preg_replace, Ausgabeproblem <p>Hallo Sandra,</p> <blockquote> <p>if (preg_replace</p> </blockquote> <p>Du möchtest mal ins Handbuch schauen was preg_replace() eigentlich zurück gibt - und anschließend möchtest du feststellen dass preg_match() für deinen Zweck hilfreicher ist.</p> <blockquote> <p>( '~[^a-z/>]~i', '',$test ))</p> </blockquote> <p>Was genau haben / und > in der Zeichenklasse zu suchen?</p> <blockquote> <p>{<br> echo 'Verbotenes Zeichen!';<br> };</p> </blockquote> <p>Was bezweckst du mit dem Semikolon hinter »}«?</p> <p>Gruß,<br> Tobias</p> https://forum.selfhtml.org/self/2011/sep/18/preg_replace-ausgabeproblem/1525649#m1525649 Moritz 2011-09-19T08:32:16Z 2011-09-19T08:32:16Z Lösungsansatz : preg_replace <p>Ich hab das mit "preg_replace" so gemacht. Aber vieleicht gibt es auch noch eine einfache kürzere Möglichkeit.</p> <p>Moritz</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token comment">// Das Passwort </span> <span class="token variable">$passwort</span> <span class="token operator">=</span><span class="token string single-quoted-string">'123Ü456'</span><span class="token punctuation">;</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$passwort</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$neu</span> <span class="token operator">=</span> <span class="token function">preg_replace</span> <span class="token punctuation">(</span> <span class="token string single-quoted-string">'~[^a-z0-9]~i'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">''</span><span class="token punctuation">,</span><span class="token variable">$passwort</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$a</span> <span class="token operator">=</span> <span class="token function">strlen</span><span class="token punctuation">(</span><span class="token variable">$passwort</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$b</span> <span class="token operator">=</span> <span class="token function">strlen</span><span class="token punctuation">(</span><span class="token variable">$neu</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$a</span><span class="token operator">==</span><span class="token variable">$b</span><span class="token punctuation">)</span> <span class="token comment">// Überprüfung ob unerlaubte Zeichen </span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">strlen</span><span class="token punctuation">(</span><span class="token variable">$neu</span><span class="token punctuation">)</span><span class="token operator">></span><span class="token number">4</span><span class="token punctuation">)</span> <span class="token comment">// Überprüfung ob lang genug </span> <span class="token punctuation">{</span> <span class="token variable">$infotext</span> <span class="token operator">.=</span><span class="token string single-quoted-string">' Passwort ist OK'</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token variable">$infotext</span> <span class="token operator">.=</span><span class="token string single-quoted-string">' Das Passwort muss mindestens 5 Zeichen haben! '</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token variable">$infotext</span> <span class="token operator">.=</span><span class="token string single-quoted-string">'Es sind nur Zeichen A...z und Ziffer 0...9 erlaubt '</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">echo</span> <span class="token variable">$infotext</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> </code></pre>