[php] é -> e

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 22:13
Ik heb een smoelenboek script met foto's de foto's hebben allemaal de naam:
$achternaam$voornaam$tussenvoegsel.jpg
Dit gaat op zich allemaal goed, behalve als mensen van die lastige namen hebben met leuke streepjes en punten erop... De browsers kunnen dit niet aan. (ik laat php eerst controleren of het bestand bestaat dus de bestanden bestaan wel; de linux server heeft er geen problemen mee).

Wat mij de makkelijkste oplossing lijkt een zoiets;
een functie/script vervang_letters_met_accenten_bij_letters_zoner() maar ik kon niet zoiets vinden. Weet iemand of zo'n functie toch al bestaat binnen php?, of moet ik handmatig met ereg_replace (of een variant) gaan werken?

[edit]
Het gaat dus om de letters
é
ö
à
ê
etc

[ Voor 6% gewijzigd door pietje63 op 13-10-2003 12:55 ]

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 08:38
pietje63 schreef op 13 October 2003 @ 12:54:
...De browsers kunnen dit niet aan...
:? Ik zou niet weten waarom niet...? Het gemiddelde hedendaagse filesystem kan de meeste diacrieten wel aan dacht ik, en een browser al helemaal.
Als je bedoelt dat een browser het teken verkeerd weergeeft, doe je misschien iets fout met de character encoding in je html. Lijkt me dus dat je probleem niet echt een probleem is, eerder een fout in de rest van je ontwerp/code.

Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 22:13
nu komt er gewoon te staan (voorbeeld)
code:
1
<img src ="http://saurus.t-h-o-m-a-s.nl/smoelenboek/fotos/schatorjéellen.jpg">

en hier kun je zien dat het niet werkt (iig bij mij in ie/opera) en de foto bestaat wel degelijk.

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

Verwijderd

Je zou gebruik kunnen maken van de functie rawurlencode om bestandsnamen met diacrieten op een manier in de pagina te krijgen die geen problemen geeft. Alle moeilijke tekens in de bestandsnaam worden dan vervangen door een % + code (spatie wordt dan '%20' bijvoorbeeld).

Ik heb nu even zo snel niet PHP bij de hand om het uitgebreid voor je te testen, maar ik ga ervan uit dat dit een snelle oplossing is eigenlijk.

Inderdaad is de diacrieten gewoon uit de bestandsnaam slopen ook een mogelijkheid. Ik weet eerlijk gezegd niet wat voor beperkingen het bestandssysteem van linux kent. Ik zou me anders kunnen voorstellen dat het aanpassen van de bestandsnaam makkelijker is dan elke bestandsnaam toelaten (dus ook die met diacrieten) en dan nog checken of de naam wel bruikbaar is in het bestandssysteem.

Hoop dat je hier iets aan hebt.

Acties:
  • 0 Henk 'm!

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 08:38
urlencode doet 't voor je: http://saurus.t-h-o-m-a-s...otos/schatorj%E9ellen.jpg

edit:
te laat... :(
kon je trouwens niet een nog typischer Limburgse naam nemen? :+

[ Voor 40% gewijzigd door Limhes op 13-10-2003 13:25 ]


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 17-09 16:59

Johnny

ondergewaardeerde internetguru

Is het sowieso niet handiger om foto's op te slaan met een gebruikers ID, in plaats van de naam, namen komen namelijk nogal eens dubbel voor.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

1. Als ik die link open met Mozilla Firebird, dan werkt het gewoon prima.

2. Zoals Johnny zegt, zou ik idd ook UserIDs gebruiken. Dit voorkomt gewoon een aantal problemen. En maakt het jou wel stukken makkelijker.

3. Geen idee of het de bedoeling dat gebruikers zelf hun fotos kunnen uploaden, en je daarom de filename wil aanpassen? Maar in dat geval kan je denk ik beter een script maken dat elke foto standaard de zelfde ID geeft als de gebruiker geeft, met evt. een a,b,c...z er achter als het meer als 1 fotos betreft. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

Laten we eens naar het originele probleem kijken.

We gaan zoeken via google... natuurlijk zoeken we op www.php.net

we hebben een ê die een e moet vervangen worden.. dus geven we in de trefwoorden: "ê
e replace" in dus de complete invoer in google zou zijn:ê e replace site:www.php.net.

Ik gok zo dat je deze zoek opdracht NIET gedaan hebt.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 22:13
Ok, ik denk dat ik nu wel genoeg stof heb om het probleem op te gaan lossen (ga er morgen even naar kijken)

Over de vraag waarom de bestandsnaam van de naam en neit van de user-id. Ik ben begonnen met een directory met foto's die allemaal de naam hadden van de persoon en een excel bestand met daarin alle data. Het gaan wijzigigen van alle foto's naar user-id's leek me een beetje overbodig werk (ok, het kan ook via php) maar is nu ook een optie.

Momenteel hebben mensen nog niet de mogelijkheid om zelf foto's up-te-loaden omdat nu alle foto's perfect hetzelfde formaat zijn e.d.

Ik ga maar kijken naar
* url encode
* denken over het renamen van de foto
* de hierboven genoemde google link

(ik had via google/php.net gezocht op keywoorden als accent remove

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • creative8500
  • Registratie: September 2001
  • Laatst online: 01-02 14:14

creative8500

freedom.

Dit lijkt mij de netste van de aangeboden methoden:
PHP:
1
2
3
4
5
6
function something($string)
{
    return strtr($string,
    "ŜŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ",    
    "SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy");
}

Acties:
  • 0 Henk 'm!

Verwijderd

dat lijkt mij nou net geen nette methode. zo raak je al je accenten etc kwijt.
Pagina: 1