Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

HTML entities i strlen problem

[es] :: PHP :: HTML entities i strlen problem

[ Pregleda: 1819 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MiloshPetrovic
Milos Petrovic
Beograd-Zemun

Član broj: 82899
Poruke: 15
*.adsl.beotel.net.



Profil

icon HTML entities i strlen problem22.05.2008. u 23:53 - pre 194 meseci
Pozdrav svima!!!

Imam sledeci problem.
Najjednostavnije, treba mi 'stvarna' duzina cirilicnog texta koji dobijam kao html entities...

Code:

<?php

// ovakav tekst dobijam
$string_1=html_entity_decode("&#1040",ENT_NOQUOTES,"UTF-8");

// html entity prema w3c
$string_2=html_entity_decode("&#1040;",ENT_NOQUOTES,"UTF-8");

// ispisuje se 6
echo strlen($string_1);
 
// ispisuje se 2
echo strlen($string_2);

?>


U oba slucaja sam, kao rezultat, ocekivao 1, a dobio sam dva razlicita rezultata (6 i 2). Da li postoji neko resenje za ovaj problem?

Unapred zahvalan,
Milosh


[Ovu poruku je menjao MiloshPetrovic dana 23.05.2008. u 01:47 GMT+1]

[Ovu poruku je menjao MiloshPetrovic dana 23.05.2008. u 01:49 GMT+1]
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
79.101.164.*

Sajt: https://avramovic.info


+46 Profil

icon Re: HTML entities i strlen problem23.05.2008. u 00:48 - pre 193 meseci
Probaj sa mb_strlen
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

MiloshPetrovic
Milos Petrovic
Beograd-Zemun

Član broj: 82899
Poruke: 15
*.adsl.beotel.net.



Profil

icon Re: HTML entities i strlen problem23.05.2008. u 01:57 - pre 193 meseci
Citat:


Pre svega hvala na brzom odgovoru.

Pokusavao sam i sa tim 'multi byte' string funkcijama ali nece. Mislim, nisam siguran da li sam bas probao sve kombinacije, ali u osnovi kad zamenim strlen sa mb_strlen, ne dobijam zeljenji rezultat. Probao sam i razlicite encoding-e.

Bas me zeza ova 'sitnica'. Preptostavljam da si imao neku ideju, pa ako nije problem neki mali primer.
Mislim, malo me bune ti html entiteti. Gde oni spadaju, u koji encoding? Znam da su oni u osnovi numericka reprezentacija razlicitih karaktera, ali cija(UTF-8,...)? Ili su oni u osnovi svih html encoding-a... Ili su enkodinzi u njihovoj osnovi...

Svaka vrsta pomoci i komentara bi mi dobrodosla, posto mi se cini da je mali broj ljudi dosao do ovog problema, a mene ovo bas frustrira... :(
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
*.revip2.asianet.co.th.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: HTML entities i strlen problem23.05.2008. u 11:18 - pre 193 meseci
mb_strlen za $string_2 u tvom primeru je 1, koliko i treba da bude. Jesi siguran da si stavio enkoding (UTF-8) kao drugi parametar funkcije?
Never trust an operating system you don't have sources for.
 
Odgovor na temu

MiloshPetrovic
Milos Petrovic
Beograd-Zemun

Član broj: 82899
Poruke: 15
*.adsl.beotel.net.



Profil

icon Re: HTML entities i strlen problem23.05.2008. u 12:41 - pre 193 meseci
U pravu si, zaista daje 1. Zaboravio sam da stavim enkoding, sada sljaka. Hvala mnogo.

Medjutim kao sto sam napomenuo u pitanju, ja dobijam text kao html entitete bez ';', a za njih mb_strlen ne daje zeljeni rezultat. To je i razlog zasto sam prevideo slucaj sa ';'. Stvarno ne znam odakle je to generisano. Naime, postoji deo sistema koji tako generise cirilicni html i ja nemam pristup u njegov kod. Razmisljao sam da 'nabudzim' kod i da iza svakog sestog karaktera stavim ';' pa da onda primenim mb_strlen sa utf-8 enkodingom. Na mnogim mestima se istice kao jedna od greska prilikom pisanje html entiteta, izostavljanje ';'. Da problem bude malo zacinjen, ja dobijam i text koji ne mora da bude i nije samo u vidu html entiteta. Tako da mi to malo otezava ono 'budzenje'

Uz izvinjenje na nemarnosti prilikom testiranja sa mb_strlen, konacno pitanje bi bilo, da li postoji neka opcija za nestandardne entitete. Dakle za one bez ';'? Prihvatam i neku elegantniju ideju za resenje mog problema.

Da rezimiram:

Dobijam text u razlicitim oblicima. Najcesce, u sledeca dva oblika...

Code:

<?php

//standardni tekst
$string_1="problem";

//isti tekst prikazan u vidu html entiteta (bez ';')
$string_2="&#1087&#1088&#1086&#1073&#1083&#1077&#1084";
?>


Treba mi funkcija koja ce bez obzira na oblik dati pravi rezultat...

Code:

<?php
function strlen_($string){...}

//zeljeni rezultat 7
echo strlen_($string_1);

//zeljeni rezultat 7
echo strlen_($string_2);
?>


Da napomenem, ne trazim, apriori, kompletnu realizaciju, vec cisto neku ideju ili komentar na moj moguci propust u rezonovanju problema.

 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
*.revip2.asianet.co.th.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: HTML entities i strlen problem23.05.2008. u 13:36 - pre 193 meseci
Pa PHP funkcije nece raditi ako entiti nema ; na kraju, jednostavno ce to tretirati kao obican string. Dodatni problem je to sto vecina browsera radi autokorekciju, pa ispravno prikazuje karakter iako nema ; na kraju.
Najbolje je naravno da ispravi deo koji generise neispravan output. Ako to nije moguce, onda mozes da koristis npr preg_replace da ispravis sve sto je oblika &# - neki broj - a ne zavrsava se sa ;
Never trust an operating system you don't have sources for.
 
Odgovor na temu

MiloshPetrovic
Milos Petrovic
Beograd-Zemun

Član broj: 82899
Poruke: 15
*.adsl.beotel.net.



Profil

icon Re: HTML entities i strlen problem23.05.2008. u 13:59 - pre 193 meseci
Pa da, tako je. Ipak da ne bih sada kombinovao sa preg_replace, sto je najbolja opcija u slucaju invalidnih html entiteta, ipak ce se promeniti 'generator' loseg html entity koda.
Cuo sam se sa deckom kod kojeg je taj 'generator' html entiteta i poslace mi kod pa cu da promenim. Problem je samo sto je vec nesto generisano sa ovim nepravilnim entitetima, ali na srecu nema toga mnogo pa ce se to ponovo izgenerisati.

U svakom slucaju hvala svima na odgovorima i na pomoci!

Pozdrav!
 
Odgovor na temu

[es] :: PHP :: HTML entities i strlen problem

[ Pregleda: 1819 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.