Avatar billede Ivan Praktikant
28. september 2012 - 10:02 Der er 11 kommentarer og
1 løsning

URL Encoding problem / tegnsæt problem

Hej.
Vi bøvler med et lille banko kode projekt.
http://www.stuweb.dk/ex/bingo.php
(koden er sat til at køre voice opråb nr 40 statisk)

Vi bruger google til at råbe tallene op - og vi ønsker at indbringe den særligt seje banko-slang (http://schnips.dk/banko/)  ;-)

Det fungerer fint bare at få læst tallene op og tale uden æøå.!

Men at få æøå giver problemer.
Vi har forsøgt at ændre tegnsæt format på selve php filen og forsøgt med div urlencodings i php uden held.

Det underlige er at copy-paster man print fra siden til browser fungerer det.. - prøv selv :-)

kodeudsnit:
    $ttal = 40;  // statisk sat
    $voice = $ttal;
    if ($ttal == 90)     $voice = '90-Gamle-Ole';
    if ($ttal == 66)     $voice = '66-Lange-tasker';
    if ($ttal == 40)     $voice = urlencode('smør 40');

$audio = file_get_contents('http://translate.google.com/translate_tts?tl=da&q='.$voice);
/// her vises hvad vi requester mod google.
print 'http://translate.google.com/translate_tts?tl=da&q='.$voice;

Hvordan får vi mon file_get_content (eller cURL til at lave samme request som når man copy-paster til en browser!?

Vi takker :-)
Avatar billede Ivan Praktikant
28. september 2012 - 10:50 #1
--------- PHP udsnit -----------
$ttal = 40;
$voice = $ttal;
if ($ttal == 90)     $voice = '90-Gamle-Ole';
if ($ttal == 66)     $voice = '66-Lange-tasker';
if ($ttal == 40)     $voice = urlencode('smør 40');

$audio = file_get_contents('http://translate.google.com/translate_tts?tl=da&q='.$voice);

print 'http://translate.google.com/translate_tts?tl=da&q='.$voice;

file_put_contents('audio.mp3',$audio);
--------- PHP udsnit -----------


----------- HTML udsnit --------------
<audio autoplay="">
  <source src="audio.mp3" type="audio/mp3">
  Your browser does not support the audio element.
</audio>
----------- HTML udsnit --------------
Avatar billede olebole Juniormester
28. september 2012 - 14:13 #2
<ole>

Hvilket tegnsæt gemmer du dine filer med?

/mvh
</bole>
Avatar billede Ivan Praktikant
01. oktober 2012 - 08:43 #3
Hej-
Tak for svar.
Vi har prøvet både med UTF-8 og ISO8859-1  :-)
Avatar billede olebole Juniormester
01. oktober 2012 - 14:34 #4
Det er ikke noget, man sådan 'kan prøve' med. Det er et helt bevidst valg, man tager, når man begynder at skrive et site - og derefter fraviges den beslutning ikke.

Hvad betyder i øvrigt "Vi har prøvet både med UTF-8 og ISO8859-1"? Har du - udover at skrive et META element - husket at gemme dine filer som henholdsvis utf-8 og iso-8859-1?
Avatar billede Ivan Praktikant
01. oktober 2012 - 15:26 #5
Det var også kun fordi vores UTF-8 valg ikke virkede.
Yes, filerne er både gemt i UTF-8 og HTML filen har fået et meta med på vejen stadig uden held..
Men nu sker afviklingen kun i PHP filen (som kun indeholder PHP) så det burde være nok at den er i korrekt tegnsæt.. HTML'ens audio tag henviser kun til den fil som PHP henter og gemmer som en MP3 fil.

Det jeg mistænker som sagens kerne er, at file_get_contents eller cURL sender linket lidt anderledes (encoded) end det jeg skriver i koden.. Men hvorfor aner jeg ikke.
Tak for dine tanker :-)
Avatar billede Ivan Praktikant
01. oktober 2012 - 15:29 #6
"Vi har prøvet med" betyder at vi har prøvet at gemme med begge tegnsæt for at se om det skulle gøre en forskel på den URL der bliver skudt afsted mod google.
Avatar billede olebole Juniormester
01. oktober 2012 - 16:29 #7
API'et er ikke public, så der foreligger ikke nogen officiel dokumentation. Lidt hurtig googling hjalp dog  =)

$audio = file_get_contents('[img]http://translate.google.com/translate_tts?ie=UTF-8&tl=da&q=[/img]'.$voice);
Avatar billede olebole Juniormester
01. oktober 2012 - 16:31 #8
Hmmm ... E's BB-parser er en pudsig ting!  :o|

Anyway, så skal du have ie=UTF-8 ind som parameter i din query streng  =)
Avatar billede Ivan Praktikant
02. oktober 2012 - 09:00 #9
Det VIRKER!!!
Vi siger tusind tak for hjælpen!!
Godt fundet! :-) :-)
Avatar billede Ivan Praktikant
02. oktober 2012 - 09:06 #10
Okay det der pointgivning gik lige galt...
What to do?
Avatar billede olebole Juniormester
02. oktober 2012 - 14:59 #11
Hehe ... pointsystemet kan godt virke lidt forvirrende i begyndelsen. Jeg samler ikke point, så det er helt fint  =)
Avatar billede Ivan Praktikant
04. oktober 2012 - 10:44 #12
Vi takker rigtig mange gange!!
Godt fundet.. Jo tak du har også en pæn sjat skal jeg love for!
Tak igen!
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

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