CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
07.07.2006, 11:28:52
|
Member
|
|
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
|
|
AW: Übersetzungs Script
Ja, na klar! Dieser Teil erstellt deine Bedingung für den Select.
__________________
Grüße Andes
|
07.07.2006, 16:59:19
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 70
|
|
AW: Übersetzungs Script
Sorry aber ich verstehe noch nicht ganz wie ich das einbauen muss.
Nach der abfrage oder vor?
|
07.07.2006, 18:06:40
|
Member
|
|
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
|
|
AW: Übersetzungs Script
Du kannst es davor oder danach einbauen. Hauptsache es ist vorhanden, wenn du darauf zugreifen willst.
__________________
Grüße Andes
|
07.07.2006, 21:22:30
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 70
|
|
AW: Übersetzungs Script
Okay ich habe es jetzt eingebaut und angepasst.
Nur es kommt keine ausgabe. Wie soll ich jetzt mit dem array weiter verfahren?
Ich habe es so gemacht. Ich habe es ohne das array ausgegeben. Ann klappt es. aber es werden alle satzzeichen entfernt:
PHP-Code:
$sql = "SELECT wort FROM uebersetzer WHERE sprache = '$sprache' AND id = ANY (SELECT id FROM uebersetzer WHERE (wort = '$satz' AND sprache <> '$sprache'))";
$query = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($query) > 0) {
while($row = mysql_fetch_object($query)) {
//Eingabe für Array bearbeiten
$aentf[0] = "/(\W)/"; $aeinf[0] = " $1 "; //Allen Sonderzeichen ein Leerzeichen vor und nachstellen
$aentf[1] = "/( ){2,}/"; $aeinf[1] = " "; //Doppelte Leerzeichen auf eins reduzieren
$aentf[2] = "/( )$/"; $aeinf[2] = ""; //Leerzeichen am Satzende entfernen
$eing_string = preg_replace($aentf, $aeinf, $row->wort);
//Überarbeitete Eingabe in Array zerlegen
$eing_array = explode(" ", $eing_string);
echo $eing_string." ";
}
}
|
07.07.2006, 22:15:59
|
Member
|
|
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
|
|
AW: Übersetzungs Script
Sorry, aber was ist das den für Blödsinn.
Du sollt doch nicht deine gefunden Datensätze umwandeln lassen. Sondern den Text der in das Eingabefeld eingegeben wurde. Das hatte ich doch schon alles so geschrieben. Du hättest den Teil nur Kopieren müssen.
Deshalb hast du auch keine Satzzeichen in dem String. Außer du hast welche in deiner Datenbank.
Lies dir Beitrag 27 noch mal richtig durch. Denn so hab ich das bestimmt nicht beschrieben.
__________________
Grüße Andes
|
08.07.2006, 10:23:35
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 70
|
|
AW: Übersetzungs Script
Jetzt kommt wenigstens wieder eine ausgabe:
PHP-Code:
$string = $_POST['wort'];
$sprache = $_POST['sprache'];
//Eingabe für Array bearbeiten
$aentf[0] = "/(\W)/"; $aeinf[0] = " $1 "; //Allen Sonderzeichen ein Leerzeichen vor und nachstellen
$aentf[1] = "/( ){2,}/"; $aeinf[1] = " "; //Doppelte Leerzeichen auf eins reduzieren
$aentf[2] = "/( )$/"; $aeinf[2] = ""; //Leerzeichen am Satzende entfernen
$eing_string = preg_replace($aentf, $aeinf, $string);
setlocale(LC_CTYPE, "de_DE"); //Dies in deinem Script notieren ansonsten werden dir auch alle Umlaute mit entfernt
$entf[0] = "/\W/"; //entfernt alle Sonderzeichen aus deinem Satz, auch Leerzeichen
$einf[0] = " "; //setzt für alle entfernten Sonderzeichen ein Leerzeichen ein
$entf[1] = "/( ){2,}/"; //ersetzt alle doppelten Leerzeichen
$einf[1] = " "; //durch ein Leerzeichen
$entf[2] = "/( )$/"; //ersetzt ein Leerzeichen am Ende
$einf[2] = ""; //durch nichts
$entf[3] = "/ /"; //ersetzt alle Leerzeichen
$einf[3] = "' and sprache <> '$sprache') or (wort = '"; //mit diesem
$satz = preg_replace($entf, $einf, $eing_string);
Nur wie mache ich das jetzt wie du es in Beitrag 27 beschrieben hast?
mit foreach? Sorry da habe ich echt keine ahnung.
edit:
wie schaffe ich es das er auch doppelte wörter sucht? es kann ja auch mal zweimal ich in einem satz vorkommen.
Geändert von theaims (08.07.2006 um 11:16:38 Uhr)
|
08.07.2006, 18:13:07
|
Member
|
|
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
|
|
AW: Übersetzungs Script
Bei dem zweiten preg_replace gehört $string statt $eing_string.
Du kannst dafür foreach oder auch for-Schleife nehmen. Das bleibt dir überlassen.
http://www.selfphp.info/funktionsref...onen/index.php
Du kannst auch die Eingabe so lassen wie sie ist und speicherst nur die Übersetzung und das gesuchte Wort jeweils in einem eigenen Array ab.
Dieses setzt du dann in preg_replace ein und lässt das gesuchte Wort mit dem übersetzten Wort ersetzen. Bei dieser Variante musst du aber aufpassen das dein Patern nur auf dieses eine Wort passt und nicht auf alles.
http://www.php-resource.de/tutorials/read/10/1/
__________________
Grüße Andes
Geändert von Andes (08.07.2006 um 18:15:12 Uhr)
|
10.07.2006, 14:53:08
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 70
|
|
AW: Übersetzungs Script
Hmm das mit foreach habe ich noch nicht so ganz verstanden.
Wie muss ich das denn genau machen?
Etwa so?
PHP-Code:
foreach ($eing_string as $string){
|
10.07.2006, 17:54:24
|
Member
|
|
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
|
|
AW: Übersetzungs Script
Ja, aber bezeichne die Variable nicht $string, da sie schon existiert. Dürfte zwar hier nicht zu Problemen führen, aber man sollte sich gar nicht erst angewöhnen Variablen-Namen doppelt zu vergeben.
__________________
Grüße Andes
|
10.07.2006, 19:46:20
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 70
|
|
AW: Übersetzungs Script
Ok.
Aber wie muss ich jetzt weiter verfahren?
Ich habe das jetzt so gemacht aber es kommt keine Augabe.
PHP-Code:
$string = $_POST['wort'];
$sprache = $_POST['sprache'];
//Eingabe für Array bearbeiten
$aentf[0] = "/(\W)/"; $aeinf[0] = " $1 "; //Allen Sonderzeichen ein Leerzeichen vor und nachstellen
$aentf[1] = "/( ){2,}/"; $aeinf[1] = " "; //Doppelte Leerzeichen auf eins reduzieren
$aentf[2] = "/( )$/"; $aeinf[2] = ""; //Leerzeichen am Satzende entfernen
$eing_string = preg_replace($aentf, $aeinf, $string);
foreach ($eing_string as $string2){
}
setlocale(LC_CTYPE, "de_DE"); //Dies in deinem Script notieren ansonsten werden dir auch alle Umlaute mit entfernt
$entf[0] = "/\W/"; //entfernt alle Sonderzeichen aus deinem Satz, auch Leerzeichen
$einf[0] = " "; //setzt für alle entfernten Sonderzeichen ein Leerzeichen ein
$entf[1] = "/( ){2,}/"; //ersetzt alle doppelten Leerzeichen
$einf[1] = " "; //durch ein Leerzeichen
$entf[2] = "/( )$/"; //ersetzt ein Leerzeichen am Ende
$einf[2] = ""; //durch nichts
$entf[3] = "/ /"; //ersetzt alle Leerzeichen
$einf[3] = "' and sprache <> '$sprache') or (wort = '"; //mit diesem
$satz = preg_replace($entf, $einf, $string2);
Muss ich noch etwas mit foreach machen?
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:44:30 Uhr.
|