php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 11-11-2006, 20:26
bärlina
 Junior Member
Links : Onlinestatus : bärlina ist offline
Registriert seit: Oct 2005
Beiträge: 131
bärlina ist zur Zeit noch ein unbeschriebenes Blatt
Question funktion verbessern

Hi Leute,

ich hab mir grad eine funktion zum zensieren von textstrings usw geschrieben....

aber jemand meinte zu mir, ich könnte die funktion auch ohne schleife lösen, so dass es auch auf die performance rücksicht nimmt.
...leider bekam ich nur den hinweis 'array' zu dieser Lösung .

meine frage wäre daher, falls das stimmt, wie ist das gemeintl ?



PHP-Code:
function badwords($text_str$language)
{        
      include(
"#db_admin.php"); 
      
$link_admin mysql_connect($hostip$benutzer$passwort);
                    
mysql_select_db($db_admin,$link_admin);
      
      if (
$link_admin)
      {  
            
$sql_badword mysql_query("SELECT keyword FROM ".$language."_badwords"$link_admin);
            
$row_badword mysql_fetch_array($sql_badword);
                           
mysql_close($link_admin); 

             while(
$row_badword mysql_fetch_array($sql_badwordMYSQL_ASSOC))
             {
             
$badword  "$row_badword[keyword]";
             
$text_str str_replace($badword,"***",$text_str);
             }
              
      } 

           
 return 
$text_str;    


echo 
badwords($text,$language); 
Mit Zitat antworten
  #2 (permalink)  
Alt 11-11-2006, 20:45
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sagen wir so, str_replace würde auch ein array als erstes parameter akzeptieren, doch um die einträge aus der db auszulesen, kommst du um die while-schleife nicht drum herum.
Mit Zitat antworten
  #3 (permalink)  
Alt 11-11-2006, 21:07
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von penizillin
doch um die einträge aus der db auszulesen, kommst du um die while-schleife nicht drum herum.
und wenn er die badwords als csv oder serialisiertes array ablegt?
Mit Zitat antworten
  #4 (permalink)  
Alt 12-11-2006, 02:15
Crake
 Registrierter Benutzer
Links : Onlinestatus : Crake ist offline
Registriert seit: Jun 2003
Beiträge: 150
Crake ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Fernab von Array liesse sich das beispielsweise auch mittels stripos() realisieren. Allerdings erachte ich die obrige Lösung als weitaus sinnvoller.
__________________
Gesellschaftsforum.net - Projekt zur Wiederbelebung der Diskussionskultur im Internet
1st News - Das Newsletterscript für den professionellen Einsatz
Mit Zitat antworten
  #5 (permalink)  
Alt 12-11-2006, 11:38
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: funktion verbessern

PHP-Code:
function badwords($text_str$language)
{        
      include(
"#db_admin.php");  /* <-- was macht denn die Raute da? */
      
$link_admin mysql_connect($hostip$benutzer$passwort); /* <-- du verbindest dich nicht ernsthaft bei
 jedem Aufruf der Funktion neu mit dem DB-Server?!... */
                    
mysql_select_db($db_admin,$link_admin);
      
      if (
$link_admin)
      {  
            
$sql_badword mysql_query("SELECT keyword FROM ".$language."_badwords"$link_admin);
            
$row_badword mysql_fetch_array($sql_badword);
                           
mysql_close($link_admin); 

             while(
$row_badword mysql_fetch_array($sql_badwordMYSQL_ASSOC)) /* <-- warum nicht gleich
 mysql_fetch_assoc()? */
             
{
             
$badword  "$row_badword[keyword]"/* <-- Ganz abgesehen davon, dass die Variablenzuweisung hier
 unnötig ist, wie weist du denn bitte Variablen zu? Was machen die Anführungszeichen rechts???!... weg damit -.- */
             
$text_str str_replace($badword,"***",$text_str);
             }
              
      } 

           
 return 
$text_str;    


echo 
badwords($text,$language); 
Und ganz off-topic: Wer braucht denn noch eine Blackword-List? Spielerei wie ich finde, aber egal
Mit Zitat antworten
  #6 (permalink)  
Alt 12-11-2006, 16:15
bärlina
 Junior Member
Links : Onlinestatus : bärlina ist offline
Registriert seit: Oct 2005
Beiträge: 131
bärlina ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Re: funktion verbessern

Zitat:
Original geschrieben von ghostgambler
Und ganz off-topic: Wer braucht denn noch eine Blackword-List? Spielerei wie ich finde, aber egal
he,he... ich nutze das auch nicht um richtige texte zu zensieren...
da wo dieses script eingesetzt wird (Hort-webseite) möchten die Betreuer verhindern, dass die Kids schimpfwörter als nics verwenden.
denn das ist in dem alter wohl total in


nun mal zum code :

1. die raute... verhindert den direkten aufruf dieser datei per browser.
hab ich mal so gelernt bzw gelesen die funktion wird ja nur bei der anmeldung für nicks verwendet...
obwohl ich mir sicher vorstellen kann, dass dieses script später auch an anderen stellen eingesetzt wird...

2. mysql_fetch_assoc(), ok... entweder hab ich das nicht richtig verstanden oder du hilfst mir dabei zu entdecken, warum meine variante falsch ist ***hilfe

3. die variablenzuweisung...
eigentlich woltle ich das direkt im str_replace angeben, also so :
PHP-Code:
$text_str str_replace($row_badword['keyword'],"***",$text_str); 
aber da hat mein php immer gemeckert...allerdings weiß ich echt nicht warum.... nur deshlab habich die variable so zugewiesen.
auf die anführungszeichen verzichte ich sonst schon....


PS: find ich RICHTIG cool, das script so durchzusprechen und mängel bzw fehler anzugeben... denn ich möchte dieses script schon gern so gut wie es nur geht schreiben... nicht wegen dem Hort, sondern weil ich gerne darauf verzichten möchte, mir fehler anzulernen
Mit Zitat antworten
  #7 (permalink)  
Alt 12-11-2006, 16:18
bärlina
 Junior Member
Links : Onlinestatus : bärlina ist offline
Registriert seit: Oct 2005
Beiträge: 131
bärlina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von 3DMax
und wenn er die badwords als csv oder serialisiertes array ablegt?
an csv files hatte ich noch nicht gedacht.... aber hab damit schon öfter gearbeitet...wüßte also wie ich die einlese und daraus nen array erzeuge....

wäre denn ein Lösung, darauf basierend, schneller und besser als die mysql variante mit schleife ?
Mit Zitat antworten
  #8 (permalink)  
Alt 12-11-2006, 17:51
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Re: Re: funktion verbessern

Zitat:
Original geschrieben von bärlina
da wo dieses script eingesetzt wird (Hort-webseite) möchten die Betreuer verhindern, dass die Kids schimpfwörter als nics verwenden.
denn das ist in dem alter wohl total in
Wäre dann nicht ein return true/false mit Fehlerausgabe besser als einfach den Nicknamen durch Sternchen zu ersetzen?!

Zitat:
1. die raute... verhindert den direkten aufruf dieser datei per browser.
so eine sch*
Sowas macht man mit mod_access http://httpd.apache.org/docs/2.0/mod/mod_access.html

Zitat:
2. mysql_fetch_assoc(), ok... entweder hab ich das nicht richtig verstanden oder du hilfst mir dabei zu entdecken, warum meine variante falsch ist ***hilfe
Die Variante ist nicht falsch, aber länger als mysql_fetch_assoc und komplizierter zu lesen wie ich finde

Zitat:
3. die variablenzuweisung...
eigentlich woltle ich das direkt im str_replace angeben, also so :
PHP-Code:
$text_str str_replace($row_badword['keyword'],"***",$text_str); 
aber da hat mein php immer gemeckert...allerdings weiß ich echt nicht warum.... nur deshlab habich die variable so zugewiesen.
auf die anführungszeichen verzichte ich sonst schon....
Also mein PHP gibt aussagekräftige Fehlermeldungen und meckert nicht nur vor sich rum ... geh mal auf php.net und achte darauf die anti-Mecker-Version zu laden.... *sarkasmus off* ernsthaft, so wäre es vernünftig, du musst dich irgendwo vertippt haben oder sonstwas, aber ohne Fehlermeldung lässt sich das Problem schlecht (gar nicht) lokalisieren
Mit Zitat antworten
  #9 (permalink)  
Alt 12-11-2006, 17:54
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von bärlina
wäre denn ein Lösung, darauf basierend, schneller und besser als die mysql variante mit schleife ?
nicht unbedingt ... mach es halt so wie du willst, solange du keine kritische Performance-Umgebung hast, ist das vollkommen irrelevant (aber wie gesagt, das ständige neu-Verbinden mit mysql ist nicht gerade ... hübsch...)
Mit Zitat antworten
  #10 (permalink)  
Alt 12-11-2006, 19:33
bärlina
 Junior Member
Links : Onlinestatus : bärlina ist offline
Registriert seit: Oct 2005
Beiträge: 131
bärlina ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Re: Re: Re: funktion verbessern

Zitat:
Original geschrieben von ghostgambler
Wäre dann nicht ein return true/false mit Fehlerausgabe besser als einfach den Nicknamen durch Sternchen zu ersetzen?!


so eine sch*
Sowas macht man mit mod_access http://httpd.apache.org/docs/2.0/mod/mod_access.html


Die Variante ist nicht falsch, aber länger als mysql_fetch_assoc und komplizierter zu lesen wie ich finde


Also mein PHP gibt aussagekräftige Fehlermeldungen und meckert nicht nur vor sich rum ... geh mal auf php.net und achte darauf die anti-Mecker-Version zu laden.... *sarkasmus off* ernsthaft, so wäre es vernünftig, du musst dich irgendwo vertippt haben oder sonstwas, aber ohne Fehlermeldung lässt sich das Problem schlecht (gar nicht) lokalisieren

zu 1. würde ich bei einer anmledung auch machen, ist aber nur für einen kleinen ajax-chat, damit die ihren nick frei wählen können.

zu 2. wenn es für eine variante auch einen anständigen weg gibt
worin sich mein hinweis über scriptbesprechung von vorhin gleich bestärkt sieht..mod_access werd ich gleich mal lesen.

zu 3. achso.... falls ich richtig verstehe, ich soll das gleich schreiben, statt fetch_array, und kann es dann in den klammern weglassen !?

zu 4. es handelte sich auch um fehlende oder überflüssige zeichen,
aber damit wollt ich hier keinen belästigen..ging ja auch so
Mit Zitat antworten
  #11 (permalink)  
Alt 12-11-2006, 20:37
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Re: Re: Re: Re: funktion verbessern

Zitat:
Original geschrieben von bärlina
zu 3. achso.... falls ich richtig verstehe, ich soll das gleich schreiben, statt fetch_array, und kann es dann in den klammern weglassen !?
statt
PHP-Code:
while($row_badword mysql_fetch_array($sql_badwordMYSQL_ASSOC))
// das
while ($row_badword mysql_fetch_assoc($sql_badword)) 
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:45 Uhr.