DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Sva početnička pitanja (http://www.devprotalk.com/forumdisplay.php?f=40)
-   -   Encoding XMLa na WordPressu (http://www.devprotalk.com/showthread.php?t=6584)

blogowski 30. 10. 2008. 20:58

Jebem li ga... U lokalu napravio svezu instalaciju. Uvesao tablice samo za komentare, postove, kategorije. Cak i tablicu wp_option nisam uvezao neko rucno nastelovao. Posle sve lepo izvezao on line.. i ne jebe.. :/

Pre toga sam proterao te sve tablice kroz onu skripticu i nista. Za svaki slucaj da proverim i da li novi postovi nece kojim slucajem da se OK ponasaju, objavio jedan post sa nasim slovima, sacekao koji min. da ga feedburner "prevari" i bljuje mi opet sranja. Naravno kada checkujem XML na validator javlja iste one greske :(

Nemam pojma, nisam pametan...

MorenoArdohain 30. 10. 2008. 21:04

Probaj direktno na serveru da napravis, ne u lokalu pa na server.

blogowski 30. 10. 2008. 21:50

Ma kakvi, ne je** me 3%

Sve rucno uradio na serveru, ma kakvi... :( Opet probao objavljivanje novog posta i opet ista stvar. Mislim da cu da napusim feedburner i prebacim se na svoj feed. Jebi ga, znam da nije neko resenje, ali ne znam sta drugo da radim osim da idem post po post da ubacujem rucno na svezi instal (500 postova), a onda sve isto sa komentima (preko 2k) :D

blogowski 30. 10. 2008. 22:11

Baza je ocigledno pukla, sada checkujem opet na validatoru i vidim da ima samo par postova koji nisu encodirani, ono sto ne kapiram sto nove postove mi sjebe ??

zsteva 30. 10. 2008. 22:35

Dva workarounda za problem:

Kôd:

<?php

$buf = file_get_contents("http://www.blogowski.eu/feed/");
$buf = str_replace("\xc5\x20","Š", $buf);
$buf = str_replace("\xc3\x20","", $buf);

print $buf;

i malo univerzalnije reshenje, koje ce sigurno da pokrpi sve invalid UTF8:

Kôd:

#!/bin/bash

echo "Content-Type: text/html; charset=UTF-8"
echo

wget -O- http://www.blogowski.eu/feed/ 2> /dev/null | iconv -c -f UTF-8 -t UTF-8

Oba proverena sa feedburnerom rade ;)

blogowski 30. 10. 2008. 23:13

Steva ga opravi, sada jos da da resenje celo ovde pa da stavimo reseno :)

Usput, pored Steve hvala i Morenu, Dejanu i ostalima ;)

ivanhoe 30. 10. 2008. 23:37

hehe, pogodio sam ko je autor ovog koda sa iconv i pre nego sto sam procitao ime :P

inace, just for the record, zsteva se u stvari zove Zeljko :)

blogowski 30. 10. 2008. 23:54

Ma znam, addict sam facebooka, mozda gori i od Eniaca :D Nego to zbog pseuda (valjda se ne ljuti? :1050: )

zsteva 31. 10. 2008. 07:17

@ivanhue Hvala kolega, biće danas (nadam se) isto to ali iz ob handlera ;)

zsteva zato što je steva već bilo zauzeto (pre mnogo godina), zsteva je poprilično unique na netu, tako da google:zsteva manje više sve referencira na mene :)

Naravno Steva ili Željko, po potrebi i Zoran, pošto ljudi znaju da je zsteva od nešto Stevanović, pa kao šta bi Z moglo da bude ? Pa Zoran naravno :)

Djuki 31. 10. 2008. 12:17

Malo kasno za Peđu ali možda će koristiti ostalima. I ja sam imao isto problem na jednom od blogova, pa evo kako sam to rešio.


Funkcija koja konvertuje sve atribute u svim tabelama u bazi u UTF-8;
Citat:

$sql = 'SHOW TABLES';
if ( !( $result = mysql_query( $sql ) ) ) {
echo '<span style="color: red;">Get SHOW TABLE - SQL Error: <br>' . "</span>\n";
}


while ( $tables = mysql_fetch_array($result) ) {
echo $tables[0];
# Loop through all tables in this database
$table = $tables[key($tables)];
/*$sql_alter = ("ALTER TABLE ". $table ." COLLATE utf8_general_ci");
if ( !( $result2 = mysql_query($sql_alter) ) ) {
echo '<span style="color: red;">UTF SET - SQL Error: <br>' . "</span>\n".$sql_alter;

break;
}

print "$table changed to UTF-8 successfully.<br>\n";*/

# Now loop through all the fields within this table
$sql_column = "SHOW COLUMNS FROM ".$table;
if ( !($result2 = mysql_query($sql_column) ) ) {
echo '<span style="color: red;">Get Table Columns Query - SQL Error: <br>' . "</span>\n".$sql_column;

break;
}
$sql_pk = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.STATISTICS
WHERE INDEX_NAME='PRIMARY'

AND TABLE_NAME='" . $table ."'";
if ($respk = mysql_query($sql_pk)) echo "sql dobar";
$setpk= mysql_fetch_array($respk);
echo "set: ".$setpk[0];
//print_r($setpk);

while ( $column = mysql_fetch_array( $result2 ) )
{
$field_name = $column['Field'];
$field_type = $column['Type'];

# Change text based fields
$skipped_field_types = array('char', 'text', 'enum', 'set');

foreach ( $skipped_field_types as $type )
{
if ( strpos($field_type, $type) !== false )
{
/*$sql4 = "ALTER TABLE $table CHANGE `$field_name` `$field_name` $field_type CHARACTER SET utf8 COLLATE utf8_bin";
$result4 = mysql_query($sql4);

echo "---- $field_name changed to UTF-8 successfully.<br>\n".$sql4;*/
//echo $field_name. "<br>";
$sql_get = "SELECT " .$setpk[0]. "," .$field_name ." FROM ".$table;
$res_get = mysql_query($sql_get);
while ($set = mysql_fetch_array($res_get)) {
$update = "UPDATE ".$table." SET ".$field_name."='".iconv('UTF-8', 'windows-1250', $set[1])."'
WHERE " .$setpk[0] ."=".$set[0].";";
//echo"<br>".$update."<br>";
if (mysql_query($update)) echo "Izmenjen<br>";
else "nije izmenjen<br>";
}
}
}
}
echo "<hr>\n";
}


Vreme je GMT +2. Trenutno vreme je 23:00.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.