Oh no! Where's the JavaScript?
Your Web browser does not have JavaScript enabled or does not support JavaScript. Please enable JavaScript on your Web browser to properly view this Web site, or upgrade to a Web browser that does support JavaScript.
Sign In
Not a member yet? Click here to register.

PHP-Fusion Android App

I made an Android App for PHP Fusion.
It is a simple newsreader.
In the attachment there are a few screenshots.

I have some trouble with converting the data in the database to JSON-array. Sometimes there are special characters, which will fail the conversion. I already made an custom function to strip these characters, but sometimes still some text will not be converted.

CodeDownload  
function convert_smart_quotes($string) 
{
    $search = array(chr(145),
                    chr(146),
                    chr(147),
                    chr(148),
                    chr(151),
                    chr(225));
 
    $replace = array("'",
                     "'",
                     '"',
                     '"',
                     '-',
                     'a');
 
    return strip_tags(str_replace($search, $replace, $string));



and the calling part:

CodeDownload  
  $mdata['news_news'] = $data['news_breaks'] == "y" ? nl2br(stripslashes($data['news_news'])) : stripslashes($data['news_news']);
   $mdata['news_news'] = convert_smart_quotes($mdata['news_news']);



Has someone experience how to handle this?
douwe_yntema attached the following file:
fusionnewsreader.png [242.4kB / 67 Downloads]
I don't understand why you need it. Note that json_encode needs a UTF-8 string, but the text from the database should be UTF-8.
And I don't know if the characters you enumerated can be the part of a unicode character. If they can, you will brake them with this solution.
If. I don't use the function, there is a null output of the JSON encode. Most string wil. convert now, but some still give a null result.
Yes, it could happen when you call the json_encode with an invalid encoded input. I can't imagine other case now.

Could you give me an example string?
This one I can not convert:

Quote


Op zaterdag 13 December 2014 waren de bixieruiters weer aan de beurt om op jacht te gaan naar winstpunten en eremetaal. In de rijhal van de Morraruters te Koudum kon men naast de gewone bixie rubrieken ook voor de eerste keer mee doen aan een men rubriek. Er waren in totaal 27 deelnemers in de dressuur, 4 deelnemers in het mennen en 8 bij het springen. 
In de klasse A startte Amarins Lycklema a Nijeholt met haar pony Geldau en kreeg voor beide proeven de maximale score van 84 pnt(=2wp). Dit leverde haar uiteraard twee keer de 1e prijs op. Brecht Ruiter verscheen met haar pony Okki voor de eerste keer in de klasse B1 en won ook twee keer de 1e prijs met 111 en 115 pnt(=2wp). Marije Klaske de Vries reed met haar pony Savana voor het eerst een bixie menproef, voor haar eerste proef kreeg ze 73 pnt(1wp) en haar tweede proef leverde 80 pnt(1wp) en de 1e prijs op. 
De overige leden van de Morraruters verschenen o.a aan de start in Sneek. Martha Boekema met Voodoo startte daar in de klasse ZZ-licht en behaalde daar haar tiende en elfde winstpunt door 213 en 215 pnt(=2wp) te scoren. Kenna Bakker reisde met Binck af naar Benningbroek en behaalde in de klasse ZZ-zwaar 60.86 %(1wp). De volgende dag startte ze met Alant fan e Leane op een selectie wedstrijd in de klasse M2, ze scoorde 183 pnt(1wp). Jantine Konst startte zondag 14 December in Cornwerd in de klasse L1 en won de 2e prijs met 187 pnt(1wp), tweede proef 189 pnt(1wp). In Franeker werd het hele weekend een groot springconcours georganiseerd, Deanne Baak startte op donderdagavond met haar paard Dundee in de klasse L en had in beide parcoursen een balkje(=2x1wp). Op zondag sprong Janita Wildschut met Anchar in de klasse B cat DE en sprong twee keer een foutloos parcours(2x2wp). Voor haar eerste parcours kreeg ze de 6e prijs met een stijl van 68,5 pnt, haar tweede parcours leverde de 3e prijs op met een stijl van 68 pnt. Anneke Heida sprong met Rubicon en had één balkje eraf(=1wp). Jildou Heida sprong met Magic Boy beide parcoursen foutloos(2x2wp) met voor beide parcoursen 66 stijlpunten, dit leverde haar de 5e prijs op voor het tweede parcours.
This text contains an 'é'. The UTF-8 'é' is not the same as 'é' in other character set. If the text contains a character that is not in UTF-8 character set, json_encode will return FALSE. I suppose the returned value is not NULL but false. And because of the reason I wrote in my previous comment.

You can convert the string this way:
CodeDownload  
$mdata['news_news'] = mb_convert_encoding($mdata['news_news'], 'utf-8');


But I don't know why it is not utf-8 already. I recommend you to look into it.

Do you connect to the database custom way?
Thank you very much Rimelek,

Your solution did the trick.

:G
Thread Information
Author
Replies
7 posts
Views
1,329 times
Last Post
Last updated on 5 years ago
You can view all discussion threads in this forum.
You cannot set up a bounty in this discussion thread.
You can start a new discussion thread in this forum.
You cannot reply in this discussion thread.
You cannot start on a poll in this forum.
You cannot upload attachments in this forum.
You can download attachments in this forum.
You cannot up or down-vote on the post in this discussion thread.
Users who participated in discussion: douwe_yntema, Rimelek