Avatar billede spikebox Nybegynder
09. februar 2009 - 09:17 Der er 5 kommentarer og
1 løsning

utf8_encode

Hej er der en måde hvor jeg kan bruge utf8_encode på her i koden så den altid lægger utf-8 ned i databasen også selv om den møde en side med iso-8859-1 ??

Kode:

&#65279;<?php

// Connect to the database

include 'dbconfig.php';

include 'dbopen.php';



function page_title($url,$h_id) {   

$page = @file_get_contents($url);   

if (!$page) return null;   

$matches = array();   

if (preg_match('|<meta[^>]*description[^>]*content=\"([^>]+)\"|Ui', $page, $matches)) {       



if(count($matches) > 0)

$description= $matches[1];

else

$description='';



echo '<table style="border:1px solid #033333;margin:5px;width:1000px"><tr><td>Meta Description:</td><td>LinkID='.$h_id.'<br>Host='.$url.'<br> '.$description.'</td></tr></table>';

       

mysql_query("UPDATE IGNORE hostlist SET text2Index = '$description' WHERE id = '$h_id' LIMIT 1"); 



}



}



$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM hostlist"),0);



for($i = 1; $i < $antal; $i++){

    $query  = "SELECT id,hostname,port,text2Index,priority,httpstatus,reklame FROM hostlist WHERE id = $i LIMIT 1" ;

    $result = mysql_query($query);



    while (list($id,$hostname,$port,$text2Index,$priority,$httpstatus,$reklame)= mysql_fetch_row($result)){



        if (page_title("http://$hostname",$id)){



    }

   

    }

 

    //Pause på 1 sekund.

    if(($i % 100) == 100){

        sleep(1);

    }

}



mysql_close($conn);

?>
Avatar billede jakobdo Ekspert
09. februar 2009 - 12:36 #1
Har du evt. kigge på det: http://dk.php.net/mb_detect_encoding
Avatar billede spikebox Nybegynder
10. februar 2009 - 12:15 #2
Har selv løst problemet :) og lukker

Lidt af den nye kode

Kode:

if (preg_match('|<meta[^>]*description[^>]*content=\"([^>]+)\"|Ui', $page, $matches)) {       

        if(count($matches) > 0)
{
        if($charset != 'None')
        $description= trim(strip_tags(iconv($charset, "UTF-8",$matches[1])));
        else
        $description='';
Avatar billede olebole Juniormester
10. februar 2009 - 13:27 #3
<ole>

Jamen meta'en har jo ikke nødvendigvis noget at gøre med, hvad indholdet faktisk består af - så det er næppe en holdbar løsning  =)

/mvh
</bole>
Avatar billede spikebox Nybegynder
10. februar 2009 - 13:50 #4
Øøø den må du lige udybe lidt nærmer og hvordan ville du selv lave det ?
Avatar billede olebole Juniormester
10. februar 2009 - 14:10 #5
Jeg ville slet ikke lave sådan en løsning, men sørge for at have styr på de data, jeg bruger - og sørge for at bruge ét tegnsæt i alle led.

Der er mange ting, du skal holde styr på. Hvis du vil bruge utf-8 (og det er nok en rigtig god idé), skal du:

*) bruge en utf-8 meta i dine 'html' filer
*) gemme alle dokumenter som utf-8
*) sætte evt. databaser op til utf-8 (gælder også tabel-collationer)
*) sørge for, alle data, der ender i DB, er utf-8 kodet
*) sørge for, serveren sender dokumenterne som utf-8
Avatar billede spikebox Nybegynder
10. februar 2009 - 15:09 #6
Hej olebole :) Kan kun give dig ret og en rigti fin lille guide :) Den var der ca 7500000 andrer med hjemme sider og server der kunne bruge og mit lille stykke kode konvertere forskellige ISO standarder til UTF-8 så det kommer næsten rigti i databasen :) Fx en meta description i iso-8859-1 til UTF-8 da jeg kun kører UTF-8 og mener det er den rigti standard
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester