Worte in Links umwandeln - Hilfe

D2587

Mitglied
Kennt Ihr ein Code der Worte oder Wortgruppen zum Beispiel:

"Persönliche Finanzen" in "personliche-finanzen"

umwandelt?
 
Nein, aber du könntest dir selber einen bauen.

Dazu würde ich [phpf]str_replace[/phpf] mit einem Array benutzen.
 
Dieser Code ersetzt den Satz:
Ich bin in der Schule -> Ich war in der Schule

Code:
PHP:
<?
$text="Ich bin in der Schule";
$text = preg_replace("/bin/","war",$text);
echo $text;
?>
 
Worte liegen in der Tabelle "stt" in Spalte "name-value". Es kommen täglich neue Wortgruppen hinzu.
Ich kann die Datensätze zwar aus der Spalte "name-value" ausgeben.
Aber ich verstehe immer noch nicht wie kann ich diese in Wortgruppen umwandeln und in eine neue Tabelle einfügen.
 
Zum Beispiel:
PHP:
function convert($str)
{
  $replace = array('ä', 'Ä',
                   'ö', 'Ö',
                   'ü', 'Ü',
                   ' ');
  $replace_to = array('a', 'A',
                      'o', 'O',
                      'u', 'U',
                      '-');
  return str_replace($replace, $replace_to, $str);
}
 
Ich habe dieser Code geschrieben:

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

 $con = mysql_connect("localhost","eser","pass");
 if (!$con)
   {
   die('Konnte keine Verbindung zur Datenbank aufbauen: ' . mysql_error());
   }

 mysql_select_db("'usr_web'", $con);
 
 mysql_query("SELECT name-value FROM stt2_meta");
 
 mysql_query("INSERT INTO stt (id, links)
 VALUES ('3', 'test_wort3')");

 mysql_close($con);
 ?>

Wie kann ich nun das in meine Code einbinden, damit alles funktioniert?

PHP:
function convert($str)
{
  $replace = array('ä', 'Ä',
                   'ö', 'Ö',
                   'ü', 'Ü',
                   ' ');
  $replace_to = array('a', 'A',
                      'o', 'O',
                      'u', 'U',
                      '-');
  return str_replace($replace, $replace_to, $str);
}
 
Du hast nur ein Feld in der Tabelle stt2_meta?
Was willst den du nun von was in was umwandeln. Normalerweise braucht man dazu 2 Spalten. ´von Wort´ und ´zu Wort´

Dann kannst du es wie folgt lösen
PHP:
<?php

    $string = "Mein Text mit den zu ersetzenden Wörtern"

    $sql = 'SELECT old_word, new_word FROM words;';
    $result = mysql_query($sql);
    while($row = mysql_fetch_assoc($result)){
        $patterns[]  = "/({$row['old_word']})/";
        $replaces[]  = $row['new_word'];
    }
   
    $output = preg_replace($patterns, $replaces, $string);
   
    echo $output;

?>
 
Ok, ich habe jetzt neue Testtabelle mit 2 Spalten erstellt.
Meine Tabelle "stt" hat 3 Spalten:

id
name
links




PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

 $db = @new mysqli('localhost', 'user, 'pass', 'usr_web124');
if (mysqli_connect_errno()) {
    die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
}
$sql = 'SELECT name, links FROM stt';
$result = $db->query($sql);
if (!$result) {
    die ('Etwas stimmte mit dem Query nicht: '.$db->error);
}
echo 'Die Ergebnistabelle besitzt '.$result->num_rows." Datensätze<br />\n";
 

    $string = "Mein Text mit den zu ersetzenden Wörtern"

    $sql = 'SELECT name, links FROM stt';
    $result = mysql_query($sql);
    while($row = mysql_fetch_assoc($result)){
        $patterns[]  = "/({$row['name']})/";
        $replaces[]  = $row['links'];
    }
   
    $output = preg_replace($patterns, $replaces, $string);
   
    echo $output;


 ?>


Kommt Fehlemeldung:
Parse error: syntax error, unexpected T_VARIABLE on line 19

Zeile 19:
PHP:
$sql = 'SELECT name, links FROM stt';

Was muss ich machen?
 
Wenn man dein Code hier anschaut, sieht man an den Farben bereits , dass du davor irgendwo ein ' zuviel hast....
bzw zu wenig. Der USer-Name bei der DB-Connection muss mit einem ' geschlossen werden
 
ich habe das ausversehen gelöscht als ich den code in Forum eingefürgt habe. Auf meiner Seite 'user' richtig geschrieben.

Fehlemeldung verweist diese Zeile:
$sql = 'SELECT name, links FROM stt';
 
Zurück