Replace

  • Автор Автор Hous
  • Начална дата Начална дата

Hous

Registered
В този код Кликни за преглед
има следния проблем:
Код:
$promenliva = " Asd asd ";
Transliterator::GetFileName($promenliva)
показва -Asd-asd-
Обаче ако е
Код:
$promenliva " You're ";
показва -You039re-
тоест заменя ' със #039; след което премахва # и ; и остава само числата.
Мъчих се със
PHP:
 Transliterator::GetFileName(html_entity_decode($promenliva))
но пак същия ефект.
Някой може ли да помогне?
ПС:преди да постнете код моля тествайте го
:)
 
Ползвай htmlspecialchars_decode(), но го слагай преди да махне # и ; защото после нема да стане.
 
Самия запис в дб-то е записан от вида: (без разстоянието)
Код:
A&#039 ;sd
вместо A'sd

Някой може ли да даде пример (с моя код) как ще стане ? от 1 час се мъча вече без никакъв успех.
 
Пробва ли със stripslashes() :idea:

П.П.
Hous каза:
ПС:преди да постнете код моля тествайте го
:)
А ако искаш да хвърлим боб, какво аджеба съдържа Transliterator::GetFileName() :)
 
Replace каза:
А ако искаш да хвърлим боб, какво аджеба съдържа Transliterator::GetFileName() :)
Кода на Transliterator е даден в едно линкче в първия пост .

Опитах със 3те който видях entyty special chars i stripslashes
Код:
html_entity_decode(Transliterator::GetFileName($row['field']))
htmlspecialchars_decode(Transliterator::GetFileName($row['field']))
stripslashes(Transliterator::GetFileName($row['field']))
където row['field'] е със следното съдържание: A&#039 ;sd (без разстоянието)

не мога да го "сглобя" да работи ...
 
В класа, който си постнал по-горе замени реда
PHP:
$latin = trim(preg_replace("/[^a-zA-Z0-9\-\s\.]/", '', $latin));
с
PHP:
$latin = trim(preg_replace("/[^a-zA-Z0-9\-\s\.\&\#\;]/", '', $latin));
 

Back
Горе