Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> tablice + dane z pliku (albo i niekoniecznie)
arti1
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 18.11.2003

Ostrzeżenie: (0%)
-----


Wiem że jest o tym sporo postów na forum i dużo opisanych funkcji w manualu. Jednak nie mogę skumać jak zrobić następującą rzecz:

Wpisuje sobie tekst w textarea. Po uruchomieniu formularza chciałbym, aby cały wpisany tekst był sprawdzony, czy nie występują w nim jakieś wyrazy (np. przekleństwa lub inne niedozwolone). Te niedozwolone najchetniej trzymałby w osobnym pliku np.: forb.txt (w formie: wyraz1|wyraz2|wyraz3|wyraz4|..... itd).

Jak sprawdzić czy w zmiennej z tekstem textarea jest ktorys z tych wyrazów (jesi jest zwracam komentarz)?

Czy mozna np.: te wyrazy z pliku txt wrzucic w tablice, a tekst z textarea tez podzielic na wyrazy i stworzyc tablice. A Pozniej tylko porównac te dwie tablice (tylko jak to zrobić?questionmark.gif). Czy to rozsadne rozwiazanie? Czy jest lepsze wyjscie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
spenalzo
post
Post #2





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Najprostsza wersja smile.gif
[php:1:06331e0f09]<?php
$przeklenstwa=explode("|",implode("",file("przeklenstwa.txt")));
$tekst=explode(" ",$tekst);
foreach($tekst as $k=>$wyraz)
{
if(in_array($wyraz,$przeklenstwa))
{
$tekst[$k]="[---]";
}
}
$tekst=implode(" ",$tekst);
echo $tekst;
?>[/php:1:06331e0f09]
to jest pisane z palca, wiec może nie działać - ale powinieneś mniej więcej wiedzieć jak to może wyglądać.


--------------------

Go to the top of the page
+Quote Post
arti1
post
Post #3





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 18.11.2003

Ostrzeżenie: (0%)
-----


Dzieki wielkie za podpowiedz (wumie to za gotowca biggrin.gif ).

Mam z tym jeszcze jeden problem:
Kod
ooo [cenzura] mac ja przekleństwo1



to jest przekleństwo2  sprawa



ojojo

przekleństwo3 jak nic



to jest wielka przekleństwo4. ja wam mowie


mianowicie:
-jesli przeklenstwo jest na koncu linijki (i nie ma po nim spacji), jesli spacja po wyrazie jest podwójna, lub jesli wyraz jest na poczatku linii, jesli od razu po przeklenstwie jest kropka - nie zostaja one zastapione wyrazem [cenzura] (mowie tu o przekleństwo1, przekleństwo2, przekleństwo3, przekleństwo4).

Czy moznaby z tym jakoś zawalczyć?Jak mniemam jest to uzaleznione od funkcji explode... ale co zmienić żeby było lepiej?questionmark.gif
Go to the top of the page
+Quote Post
spenalzo
post
Post #4





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Hmm.. tutaj musiałbyś zastosować wyrażenia regularne - ale z tym to ja nie pomoge już.


--------------------

Go to the top of the page
+Quote Post
bamboos
post
Post #5





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam!!
Może coś takiego:
Kod
brzydkie|słowo|aaa|bbb

[php:1:93b367cf0f]<?php
$text = 'w tym texcie jest
aaasdfbbb
bardzo
23brzydkie45 _słowo_';
$slowa = explode('|', str_replace(array("n", "r"), array("|",""), file_get_contents($plik)));
$empty = array();
for($i = 0; $i < count($slowa); $i++){
$empty[] = '[cenzura]';
}
$text = str_replace($slowa, $empty, $text);
?>[/php:1:93b367cf0f]

Chyba, że nie o to chodziło.

[manual:93b367cf0f]file_get_contents[/manual:93b367cf0f]


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:04