Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Accorciare una stringa, mantenendo determinati caratteri

    Buonasera,
    ho necessità di accorciare una stringa 15 caratteri.
    Per tale motivo ho utilizzato la funzione:
    Codice PHP:
    substr($testo015); 
    Il problema è che questa stringa può contenere anche dei caratteri speciali che, attraverso un'altra funzione da me creata, vengono sostituiti con i rispettivi Entity Name (
    codice:
    & a m p; & a g r a v e; ecc...
    ).
    Il problema che, quindi, mi trovo a dover risolvere è:
    nel caso la stringa sia:
    codice:
    Questo qu& a g r a v e; & e g r a v e; il testo di prova
    la funzione substr mi creerà una stringa con il contenuto "Questo qu&agrav". Ovviamente, quando andrò a stampare questo valore, mi verrà un carattere irriconoscibile o mi verrà scritto "&agrav".
    La domanda, quindi, è, dal momento che la "traduzione" di un Entity Name occupa solamente lo spazio di 1 carattere, come faccio a far tagliare la stringa facendogli capire che i vari Entity Name hanno la lunghezza di 1?
    Ovviamente, vorrei fare ciò, senza dover tradurre gli Entity Name, ma farli arrivare al browser sottoforma di Entity Name, appunto, lasciando a lui il compito di tradurli nei caratteri giusti per il linguaggio dell'utente che sta visualizzando il sito.
    Spero di essermi spiegato abbastanza bene...
    Vi aspetto numerosi...

    P.S.
    Scusate la formattazione non proprio perfetta, ma scrivendo gli Entity Name senza spazi, me li convertiva nei caratteri corrispondenti.
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che si realizzi!!! - Albert Einstein -

  2. #2
    Non basta tagliare la stringa PRIMA di convertire i caratteri scusa?
    Se non puoi puoi prima riconvertire le entities in caratteri normali, tagliare la stringa e ri-riconvertire i caratteri speciali con le entities.
    Codice PHP:
    $string "Questo quà è il testo di prova";
    $string html_entity_decode($string);
    $string substr($string015);
    $string htmlentities($string); 

  3. #3
    E siamo sicuri che i caratteri vengono convertiti correttamente?
    Perchè ho sempre avuto una grande paura con questi caratteri speciali.
    La mia preoccupazione è del tipo: se vengono convertiti con "html_entity_decode" da una server linux, quando vengono riconvertiti con "htmlentities", siamo sicuri che sono letti perfettamente su un computer Windows?
    Scusate la domanda, forse un po' troppo ovvia, ma quello dei caratteri speciali è un nodo importante del mio programma, e vorrei avere la certezza che tutto sia perfettamente leggibile da qualsiasi sistema operativo.
    Grazie di nuovo
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che si realizzi!!! - Albert Einstein -

  4. #4
    Non dovresti cambiare le vocali accentate nelle loro entita' HTML, basta usare il charset UTF8 nelle tue pagine.

  5. #5
    Ma non si tratta solamente delle vocali accentate. Si tratta anche di tutti gli altri caratteri speciali.
    Le stringhe che devo accorciare, infatti, provengono da un database e sono state inserite nel database da una persona qualsiasi. Perciò, se per caso mettesse dei caratteri speciali (oltre le vocali accentate), si creerebbero dei pasticci quando le andrei a tagliare...
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che si realizzi!!! - Albert Einstein -

  6. #6
    Quali sarebbero i "caratteri speciali"?

  7. #7
    Questi sono quasi tutti...
    ¢, €, £, ¥, ©, ®, ™, ‰, µ, ·, •, …, ′, ″, §, ¶, ß, ‹, ›, «, », ‘, ’, “, ”, ‚, „, <, >, ≤, ≥, –, —, ¯, ‾, ¤, ¦, ¨, ¡, ¿, ˆ, ˜, °, −, ±, ÷, ⁄, ×, ¹, ², ³, ¼, ½, ¾, ƒ, ∫, ∑, ∞, √, ∼, ≅, ≈, ≠, ≡, ∈, ∉, ∋, ∏, ∧, ∨, ¬, ∩, ∪, ∂, ∀, ∃, ∅, ∇, ∗, ∝, ∠, ´, ¸, ª, º, †, ‡, À, Á, Â, Ã, Ä, Å, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ð, Ñ, Ò, Ó, Ô, Õ, Ö, Ø, Œ, Š, Ù, Ú, Û, Ü, Ý, Ÿ, Þ, à, á, â, ã, ä, å, æ, ç, è, é, ê, ë, ì, í, î, ï, ð, ñ, ò, ó, ô, õ, ö, ø, œ, š, ù, ú, û, ü, ý, þ, ÿ, Β, Γ, Δ, Ε, Ζ, Η, Θ, Ι, Κ, Λ, Μ, Ν, Ξ, Ο, Π, Ρ, Σ, Τ, Υ, Φ, Χ, Ψ, Ω, α, β, γ, δ, ε, ζ, η, θ, ι, κ, λ, μ, ν, ξ, ο, π, ρ, ς, σ, τ, υ, φ, χ, ψ, ω, ℵ, ϖ, ℜ, ϑ, ϒ, ℘, ℑ, ←, ↑, →, ↓, ↔, ↵, ⇐, ⇑, ⇒, ⇓, ⇔, ∴, ⊂, ⊃, ⊄, ⊆, ⊇, ⊕, ⊗, ⊥, ⋅, ⌈, ⌉, ⌊, ⌋, 〈, 〉, ◊, ♠, ♣, ♥, ♦
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che si realizzi!!! - Albert Einstein -

  8. #8
    Sono tutti rappresentabili direttamente con codifica UTF8.

  9. #9
    Quindi, se metto
    Codice PHP:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    in tutte le mie pagine, i caratteri verranno sempre visualizzati senza fare nessun encode/decode?
    E per "tutte le pagine" intendo sia quelle che inviano i dati al database, sia quelle che stampano i dati contenuti nel database?
    E per le tabelle MySQL? Devo impostare anche lì qualcosa?
    Scusa se ti sfrutto, ma non ci ho mai capito una mazza sui caratteri speciali...
    Ah, un'altra cosa: in questo modo è possibile vedere i caratteri giusti in qualsiasi lingua, sistema operativo (client e server), così come avviene con gli Entities HTML?
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che si realizzi!!! - Albert Einstein -

  10. #10
    Devi codificare anche i campi del database come utf8 (ut8_general_ci)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.