php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.03.2009, 23:42  
Neuer Benutzer
 
Registriert seit: 25.03.2009
Beiträge: 1
PsYDoX befindet sich auf einem aufstrebenden Ast
Standard Umlaut Problem

Hi Phpler
ich habe hier ein Script welches aus einem RSS-Feed (Kino-News) daten ausliest und diese in eine Datenbank einträgt und dann ein Thread in einen Forum erstellt.

Folgendes Problem.
Das Script holt die Daten und trägt sie OHNE Umluatfehler in die Datenbank ein.

Im Thread sieht das ganze so aus:
PHP-Code:
[Fri13 Mar 2009 04:00:00» Shopaholic - Die Schn?chenj?rin
Bezaubernde
spritzige Komödie mit einem neuen Traumpaar in Gestalt von Isla Fisher und Hugh Dancy.... 
In der Datenbank so:
Code:
Shopaholic - Die Schnäppchenjägerin
Wie mann sieht ist nur der "title" mit Umlautproblemen befallen, der rest nicht!

Hier mal das ganze Script:
PHP-Code:
<?PHP
/*
 * (C) 2006 e-WebWork
 * http://www.e-webwork.de
 * kboehme@e-webwork.de
 */
require("./acp/lib/options.inc.php");
require(
"./acp/lib/rss.inc.php");
require(
"global.php");


print 
'*** ['.date("d.m.Y H:i").'] Starting script...';
print 
"\n";    
print 
'*** ['.date("d.m.Y H:i").'] UID->'.$uid.'';
print 
"\n";    
print 
'*** ['.date("d.m.Y H:i").'] UNAME->'.$uname.'';
print 
"\n";    
print 
'*** ['.date("d.m.Y H:i").'] BOARDID->'.$boardid.'';
print 
"\n";    
print 
'*** ['.date("d.m.Y H:i").'] SITESCONT->'.count(sites).'';
print 
"\n";    

$time time();
for(
$s 0;$s count($sites); $s++){
    
preg_match("/^((https?|ftp):\/\/|www\.)([^ \r\n\(\)\^\$!`\"'\|\[\]\{\}<>]*)/si"$sites[$s], $input[1]);
    
$urlsplit split("/",$input[1][3]);

    print 
'*** ['.date("d.m.Y H:i").'] sites['.$s.'] = '.$urlsplit[0].'';
    print 
"\n";    

    
$content implode("",file($sites[$s]));
    
preg_match_all("/\<item\>(.*?)\<\/item\>/si"$content$results);

    for(
$i 0;$i count($results[1]);$i++) {
        
preg_match("/\<link\>(.*?)\<\/link\>/si"$results[1][$i], $link);
        
preg_match("/\<title\>(.*?)\<\/title\>/si"$results[1][$i], $title);
        
preg_match("/\<description\>(.*?)\<\/description\>/si"$results[1][$i], $desc);
        
preg_match("/\<pubDate\>(.*?)\<\/pubDate\>/si"$results[1][$i], $date);

        
$link $link[1];
        
$title $title[1];
        
$desc $desc[1];
        
$date $date[1];

        
$check $db->query("SELECT id,title FROM bb".$n."_rss WHERE title = '".addslashes($title)."'");
        if(
$db->num_rows($check) == 0){ 
            
$db->query("INSERT INTO `bb".$n."_rss`  ( `id` , `from` , `title` , `link` , `description` ) VALUES ('', '".$s."', '".addslashes($title)."', '".addslashes($link)."', '".addslashes($desc)."')");
            if(!empty(
$date)) $news[$s][$i]['date'] = substr($date,0,strlen($date)-6);
            
$news[$s][$i]['link'] = $link;
            
$news[$s][$i]['title'] = $title;
            
$news[$s][$i]['desc'] = $desc;
            if(!
$news[$s]['name']) $news[$s]['name']  = $urlsplit[0];

            print 
'*** ['.date("d.m.Y H:i").'] DB->INERSRT('.$title.')';
            print 
"\n";
        } else {
            print 
'*** ['.date("d.m.Y H:i").'] DB->EXISTS('.$title.')';
            print 
"\n";
        }
    }
}

for(
$i 0;$i count($news);$i++){
    
$newstopic[$i] = "".$news[$i]['name']." - News [".date("d.m.Y H:i")."]";
    for(
$a 0;$a count($news[$i]);$a++){
        if(!empty(
$news[$i][$a]['date'])) $newstext[$i] .= "[".$news[$i][$a]['date']."] [b]&raquo; [url=".utf8_decode($news[$i][$a]['link'])."]".utf8_decode($news[$i][$a]['title'])."[/url][/b]<br />";
        else if(!empty(
$news[$i][$a]['title'])) $newstext[$i] .= "[b]&raquo; [url=".utf8_decode($news[$i][$a]['link'])."]".utf8_decode($news[$i][$a]['title'])."[/url][/b]<br />";

        if(!empty(
$news[$i][$a]['desc'])) $newstext[$i] .= "[i]".utf8_decode(htmlentities($news[$i][$a]['desc']))."[/i]<br /><br />";
    }

    
$newstext[$i] .= "<br />[i]Quelle: [url=http://".utf8_decode($news[$i]['name'])."]".utf8_decode($news[$i]['name'])."[/url][/i]<br /><br />";
}

for(
$i 0;$i count($newstext);$i++){
    
$db->query("INSERT INTO bb".$n."_threads (boardid,topic,iconid,starttime,starterid,starter,lastposttime,lastposterid,lastposter,closed,attachments,pollid,important,visible) VALUES ('".$boardid."','".addslashes($newstopic[$i])."','3','".$time."','".$uid."','".addslashes($uname)."','".$time."','".$uid."','".addslashes($uname)."','".$rss_status."','0','0','0','1')");
    
$threadid $db->insert_id();
    print 
'*** ['.date("d.m.Y H:i").'] DB->CREATE_THRED('.$threadid.'->'.$newstopic[$i].')';
    print 
"\n";

    
$db->unbuffered_query("UPDATE bb".$n."_stats SET threadcount=threadcount+1"1);
    print 
'*** ['.date("d.m.Y H:i").'] DB->UPDATE_GLOBAL_THREADCOUNT';
    print 
"\n";

    
$db->query("INSERT INTO bb".$n."_posts (parentpostid,threadid,userid,username,iconid,posttopic,posttime,message,attachments,allowsmilies,allowhtml,allowbbcode,allowimages,showsignature,ipaddress,visible) VALUES "."('0','".$threadid."','".$uid."','".addslashes($uname)."','3','".addslashes($newstopic[$i])."','".$time."','".addslashes($newstext[$i])."','0','1','1','1','1','0','127.0.0.1','1')");
    
$postid $db->insert_id();
    print 
'*** ['.date("d.m.Y H:i").'] DB->CREATE_POST('.$threadid.'->'.$postid.')';
    print 
"\n";

    
$db->unbuffered_query("UPDATE bb".$n."_stats SET postcount=postcount+1"1);
    print 
'*** ['.date("d.m.Y H:i").'] DB->UPDATE_GLOBAL_POSTCOUNT';
    print 
"\n";

    
$db->unbuffered_query("UPDATE bb".$n."_boards SET threadcount=threadcount+1, postcount=postcount+1, lastthreadid='".$threadid."', lastposttime='".$time."', lastposterid='".$uid."', lastposter='".addslashes($uname)."' WHERE boardid IN (".$boardid.")"1);
    print 
'*** ['.date("d.m.Y H:i").'] DB->UPDATE_BOARD('.$boardid.')';
    print 
"\n";
}
?>
ich denke der Wichtige schnipsel ist dieser:
PHP-Code:
 if(!empty($news[$i][$a]['date'])) $newstext[$i] .= "[".$news[$i][$a]['date']."] [b]&raquo; [url=".utf8_decode($news[$i][$a]['link'])."]".utf8_decode($news[$i][$a]['title'])."[/url][/b]<br />";
        else if(!empty(
$news[$i][$a]['title'])) $newstext[$i] .= "[b]&raquo; [url=".utf8_decode($news[$i][$a]['link'])."]".utf8_decode($news[$i][$a]['title'])."[/url][/b]<br />"
ich habe echt keine ahnung was ich da machen soll, denn die discription ist ja mit umlauten blos die überschrift nicht.
Die Datenbank ist auf utf8_general_ci gestellt.

Würde mich über Hilfe freuden!

Geändert von PsYDoX (26.03.2009 um 08:59 Uhr).
PsYDoX ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.03.2009, 01:15  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Willkommen im Forum!

Damit Du hier nicht mit dem falschen Fuß einsteigst beherzige bitte diesen Thread.
Wichtige Punkte:
  • Wir helfen gern, wenn Du Initiative zeigst. Macht mal ist nicht.
  • Bitte benutze die Code-Box-Buttons und poste relevanten Code.
  • Bitte stelle verständliche Fragen in ordentlicher Sprache. Sei prägnant!
  • Bitte verwende für spätere Leser einen Threadtitel, der das Problem kurz beschreibt
  • Bitte drängle nicht.
  • Bitte markiere abgeschlossene Themen über den "Erledigt"-Link oben links.

[MOD: verschoben]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 26.03.2009, 10:44  
Erfahrener Benutzer
 
Benutzerbild von Sermon
 
Registriert seit: 04.03.2009
Beiträge: 231
Sermon befindet sich auf einem aufstrebenden Ast
Standard

Du kannst mal probieren, obwohl er es ja ohne fehler in die Db schreibt vor dem guery befehl ein zeile zu schreiben und zwar:
PHP-Code:
mysql_set_charset(utf8); 
Dann weißt du hundert prozentig, dass er die Daten richtig rein schreibt.
Andersrum, kannst du es vor dem auslesen auch probieren.
Nur dann nicht mit utf8 sondern latin1.
utf8 ist nämlich der MySQL standard und latin1 der PHP standard.
Ergo:
PHP-Code:
mysql_set_charset(latin1); 
__________________
Sermon ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Basedir in PhP cmuch05 Datenbanken 9 08.01.2009 14:17
[Erledigt] Problem: PHP Selbe Datei mehr als 1 Mal soulan PHP Tipps 2008 13 28.11.2008 22:51
[Erledigt] Problem mit Umlaut im Dateinamen SilentSight PHP Tipps 2008 2 10.11.2008 14:08
Problem Upload mehrere Dateien und schreiben in DB Lapje PHP Tipps 2008 1 22.10.2008 13:12
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
While schleife mit Datenbank in ein Dropdown Feld (Umlaut Problem) kintaro PHP Tipps 2008 6 28.08.2007 19:11
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
UTF Umlaut Problem öÜß und co. Ypsillon Datenbanken 1 17.06.2006 18:30
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php glob umlaute, glob umlaute, http://www.php.de/php-einsteiger/53379-umlaut-problem.html, php glob umlaut, php utf8_decode, \kboehme@e-webwork.de\, preg_match macht umlaute kaputt, php utf8_decode umlaute kaputt, php links mit umlaut, addslashes macht umlaute kaputt?, utf8_decode umlaute php, php umlaut problem aus datenbank, umlautproblem in datenbank, php addslashes umlaut, require php umlaut, php file exist umlaute, umlaute count, umlaut title php, kboehme@e-webwork.de, e-webwork.de

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:31 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum