Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zablokować ciąg
Forum PHP.pl > Forum > PHP
maciu
Poprzez formularz dodaje do bazy tekst. W jaki sposób zrobić, aby do bazy nie zostały dodane znaczniki <BR> (<br>, <br /> <BR />). Krótko mówiąc zablokować możliwość dodawania tych znaczników do bazy.
adwol
Cytat
Poprzez formularz dodaje do bazy tekst. W jaki sposób zrobić, aby do bazy nie zostały dodane znaczniki <BR> (<br>, <br /> <BR />). Krótko mówiąc zablokować możliwość dodawania tych znaczników do bazy.

Tylko tych:
[php:1:522f7bb7ed]<?php
$tekst = preg_replace('|<br.*?>|i', '', $tekst);
?>[/php:1:522f7bb7ed]
czy wszystkich:
[php:1:522f7bb7ed]<?php
$tekst = strip_tags($tekst);
?>[/php:1:522f7bb7ed]
maciu
To czym się różnie funkcja preg_replace od str_replace?

I mógłbyś dokładnie wytłumaczyć znak po znaku wyrażenie
[php:1:7f2010f749]
|<br.*?>|i
[/php:1:7f2010f749]
adwol
Cytat
To czym się różnie funkcja preg_replace od str_replace?

Tym, że str_replace wymienia stałe frazy w ciągu, a preg_replace korzysta z wyrażeń regularnych.
Cytat
I mógłbyś dokładnie wytłumaczyć znak po znaku wyrażenie
[php:1:92cac06ad8]
|<br.*?>|i
[/php:1:92cac06ad8]

Znaki | ograniczają właściwe wyrażenie regularne. Litera i na końcu to flaga oznaczająca, że ciąg ma być dopasowywany z ignorowaniem wielkości znaków. Część główna (<br.*?>) to właściwe wyrażenie. .*? oznacza ,,dowolny ciąg znaków niezachłannie'', reszta to zwykłe znaki pasujące do samych siebie. W tym kontekscie to wyrażenie pasuje do tagu br z dowolnymi atrybutami.

Przepraszam, jeśli nie zrozumiałeś tego wyjaśnienia, ale nie mam Ci jak tego wytłumaczyć bez podstaw wyrażeń regularnych.
BzikOS
Tak się wtrącę... funkcja strip_tags jako opcjonalny argument może przyjąć dozwolone tagi, a resztę usunąć, czyli:

[php:1:719e9eb483]<?php
$string = strip_tags($string, '<a><b><i><u>');
?>[/php:1:719e9eb483]

wywali ze $stringu wszystkie tagi poza a, b, i, u.
maciu
Podstawy wyrażeń regularnych znam i wszystko zrozumiełem co mi przekazałeś. Także bardzo dziękuje Ci za pomoc.
maciu
jeszcze jedno pytanie związane z tematem

W jaki sposób zrobić, aby w ciągu kasował wszystkie znaki oprócz liczb?
adwol
Cytat
W jaki sposób zrobić, aby w ciągu kasował wszystkie znaki oprócz liczb?

[php:1:4cf8edc206]<?php
$tekst = preg_replace('/[^0-9]/', '', $tekst);
?>[/php:1:4cf8edc206]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.