Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tablice + dane z pliku (albo i niekoniecznie)
Forum PHP.pl > Forum > PHP
arti1
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?
spenalzo
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ć.
arti1
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
spenalzo
Hmm.. tutaj musiałbyś zastosować wyrażenia regularne - ale z tym to ja nie pomoge już.
bamboos
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]
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.