Hallo
In mijn NL website doe ik " substr("December", 0, 3) " om tot Dec te komen.
Nu wou ik dit in mijn FR website doen " substr("Décembre", 0, 3) " om tot Déc te komen.
Probleem is dat ik dan Dé krijg in plaats van Déc, een karakter te kort dus.
De reden is é - via mb_substr() kan ik het oplossen en dan krijg ik Déc.
Probleem is dat ik dan mijn hele website moet gaan wijzigen want ik gebruik dit regelmatig.
Alle tekst zit in een array dus ik kan er eenvoudig een bewerking op doen.
Kan ik ergens een makkelijkere "fix" doen? Was al aan het proberen met utf8_encode() etc met een loop door die array.
Alvast bedankt
Wesley
- PHP substr() karakter te kort ?
-
16-06-2018, 10:14 #1
- Berichten
- 940
- Lid sinds
- 15 Jaar
PHP substr() karakter te kort ?
-
In de schijnwerper
-
16-06-2018, 11:36 #264BitsWebhosting.EU
- Berichten
- 2.092
- Lid sinds
- 17 Jaar
Re: PHP substr() karakter te kort ?
Dat is utf8, dus mb_substring() gebruiken
-
16-06-2018, 11:38 #3
- Berichten
- 940
- Lid sinds
- 15 Jaar
Re: PHP substr() karakter te kort ?
Dacht even door mijn array te loopen en een bewerking op de woorden te doen.
Zo eenvoudig kom ik er precies niet vanaf ... daar vreesde ik dus al voor :-(
-
16-06-2018, 17:09 #4
- Berichten
- 691
- Lid sinds
- 14 Jaar
Re: PHP substr() karakter te kort ?
PHP Code:<?php
$arr = ['Décembre', 'FooFoo', 'BarBar'];
$res = array_map(function($val) {
return mb_substr($val, 0, 3, 'utf-8');
}, $arr);
print_r($res);
-
17-06-2018, 18:20 #5
- Berichten
- 940
- Lid sinds
- 15 Jaar
Re: PHP substr() karakter te kort ?
Het idee is dit ... ik heb een grote array ($lg) die alle tekst bevat.
Op een gegeven moment heb ik bv een SUBSTR gedaan op die tekst.
In het Nederlands is dat geen probleem, in het Frans bv wel voor Février.
De maand augustus in het Frans is ook een probleem.
Code:$lg['month_1'] = "Janvier"; $lg['month_2'] = "Février"; $lg['month_3'] = "Mars"; $lg['month_4'] = "Avril"; $lg['month_5'] = "Mai"; ... $lg['month_8'] = "Août"; ...
Met uw voorbeeld lukt het maar is niet helemaal wat ik zoek, dan is alles maar 3 karakters lang.
Ik heb ook tekst in die array die ik wel volledig nodig heb. Soms worden de maanden ook volledig getoond.
Heeft u misschien een idee wat ik zou kunnen doen om het 'eenvoudig' op te lossen?
-
18-06-2018, 10:48 #6
- Berichten
- 390
- Lid sinds
- 15 Jaar
Re: PHP substr() karakter te kort ?
De beste oplossing is toch wel om de multibyte varianten van functies hiervoor te gaan gebruiken. Anders moet je gaan puzzelen met charsets en breek je dingen waarschijnlijk op een andere plek als het hier juist goed gaat. Als het even wat werk oplevert, dan is dat helaas even niet anders. (Doe het zingend terwijl je jezelf gelukkig prijst dat je in elk geval geen strings in C++ tussen functies heen en weer hoeft te schuiven.)
Maar even wat breder: ik neem aan dat je dit bijvoorbeeld gebruikt voor het verkort weergeven van maanden zoals we dat in Nederland zo doen: 10 aug 2018? In het Nederlands bereik je een prima resultaat door daar de eerste 3 letters van de naam van de maand voor te nemen, maar in het Frans zit dat anders. Als je août daar correct af wilt korten dan krijg je gewoon août en dus niet aoû. Er worden daar afwisselend 3 en 4 letters gebruikt om namen af te korten, zoals 3 voor jan en feb, maar 4 voor juil, sept en dus août bijvoorbeeld.
Je zou dus om te beginnen al moeten overdenken of dit wel de juiste manier is om de maanden weer te gaan geven. Wellicht is het toch beter om ook gewoon de correcte verkorte namen in de array te zetten als month_1_short en die direct aan te roepen. Het zal even wat werk zijn, maar dat gaat het zoals gezegd sowieso wel worden vrees ik.
-
18-06-2018, 11:59 #764BitsWebhosting.EU
- Berichten
- 2.092
- Lid sinds
- 17 Jaar
Re: PHP substr() karakter te kort ?
Je kunt ook gewoon de correcte manier gebruiken om met datums om te gaan. Scheelt een hoop gezeik.
setlocale(LC_ALL, 'fr_FR');
echo strftime("%A %e %B %Y");
http://php.net/manual/en/function.strftime.php
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic