Andreas Korthaus: wo steht wordchar-Definition im MySQL-Quelltext?

Beitrag lesen

Hallo Christian!

Vor allem sinnvoller *g*

... hast ja Recht ;-)

Was sagst Du dazu?

Da ist ein Fehler drin. Und der RegEx ist auch unnoetig.

:-(

Ich wuerde an deiner Stelle es etwa so machen:

:-)

define('MIN_WORD_LEN',2);
$Stopwords = Array(
  'wort1' => 1,
  'wort2' => 1
);

wieso weist Du den Elementen denselben Wert zu? könnte man nicht einfach statt

if($Stopwords[strtolower($wrd)]) continue;

$Stopwords = Array(
  'wort1',
  'wort2'
);
[...]
if(in_array($Stopwords)) continue;

schreiben? Oder ist das nicht so gut?

function is_wchar($c) {
  if(ord($c) >= 48 && ord($c) <= 122) return true;

switch($c) {
    case 'ä':
    case 'Ä':
    case 'ö':
    case 'Ö':
    case 'ü':
    case 'Ü':
    case 'ß':
    case '_':
    case '/':
    case '-':
      return true;
  }

return false;
}

das verstehe ich noch... ich hätte das vermutlich mit einem Array mir den gültigen Zeichen und if(in_array()) gemacht, aber diese Variante dürfte besser sein, da die Zeichen nicht alle durchprobiert werden müssen.

$words = Array();

strlen() ist nicht beliebig schnell, im Gegenteil :)

$len = strlen($input);
while($pos<$len) {

das auch noch...

# lets find the beginning of the next word
  for($begin=$pos;!is_wchar($input{$begin});++$begin);

das nicht mehr. Vor alllem kenne ich nicht die syntax $input{$begin}, was ist das? $input ist doch ein String, vermutlich definierst Du ein Zeichen des Strings, aber wo steht das im Manual?

Na, genau so, wie es in C geschrieben wird? :)

Das konnte ich in PHP nicht nachbilden, aber es scheint ja doch zu gehen ;-)

Und auch die Verwendung
von substr(), leider kenne ich keine andere Methode einen
String buchstabenweise zu durchsuchen.

Da hilft das Manual ab.

vermutlich, aber wo? Ich habe gestern nochmal jede einzelen String-Funktion angeguckt, heute nochmal, und nochmal alle Array-Funktionen, ich könnte das nicht anders als wie beschrieben mit substr(). Wo steht da was im Manual?

Nein. Aber es ist Absicht. Ich moechte Postings wie

q text text
q text text
blahr
q text text
q text text

verhindern. Also so Postings, die einfach mitten drin was
schreiben, ohne ueberfluessige Quotes zu loeschen.

Verstehe ich, aber wird das denn irgendwann zur Pflicht? Dann könnte ich manchmal nicht das schreiben/zitieren was ich wollte, auf der anderen Seite bringt die Ermahnung alleine vermutlich eh nichts :-(

Danke nochmal! Hast mir sehr geholfen, auch wenn ich es noch nicht zu 100% nachvollziehen kann ;-)

Viele Grüße
andreas