[php] bestandsnaam conventies

Pagina: 1
Acties:
  • 123 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Wat zijn de conventies voor een bestandsnaam en hoe kun je van bepaalde titels een bestandsnaam maken. Zelf dacht ik door middel van een regexp. maar volgens mij wordt dit een zeer gecompliceerde regexp, omdat als er in de titel een o umlaut oid voorkomt. Deze vervangen moet worden door een o. En zo nog meer van dit soort letters, daarnaast is er het probleem met de leestekens. " , . : ; ! @ # $ % ^ = + etc.", en volgens mij moeten alle spaties door een - vervangen worden, waar kun je nog meer aan denken. Is er toevallig niet ergens een functie beschikbaar die dit doet, die ik toevallig niet ken?

Heb al gezocht in Google op filename conventions en ook de Nederlandse vertaling. Volgens mij is hier geen regexp voor te schrijven. Of wel?

Ik heb namelijk een database met allemaal titels en deze wil ik allemaal een bestandsnaam geven. Het charset is daarentegen ook nog eens UTF-8.

Zou ik dus alleen de leestekens ed moeten replacen door een leeg iets en dan de spaties vervangen door een - en de rest van de letters niet?

[ Voor 19% gewijzigd door RSD op 23-04-2005 10:45 ]


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

Volgens mij zijn er geen. Wat je het meeste ziet is dat er een korte naam die de technische werking van de pagina beschrijft wordt gebruikt zoals article.php, archive.php, calendar.php, contact.php, enz.

Het plaatsen van titlels in het adres zoals veel weblogs dat tegenwoordig doen is een vorm van zoekmachine-optimalisatie. Ik weet niet precies welke techniek ze gebruiken, maar ik denk dat het mod_rewrite is waarmee het adres http://mijnwebsite/vandaag_leker_weze_shoppuh wordt omgezet naar http://mijnwebsite/entry.php?id=689.

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


Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Dat is niet echt wta ik bedoel, ik bedoel wel het maken van die bestandsnamen van een titel.

Dus van

Jan's mooie fohn

Naar

jans-mooie-fohn

Er mogen dus alleen maar letters, cijfers en - in voorkomen

Stappenplan:

1. Alle niet alfanumerieke voorkomens vervangen door een "".
2. Meerdere spaties naast elkaar vervangen door 1 spatie
3. Alle spaties vervangen door "-"

Voor stap 1 heb ik nu:

eregi_replace("^[^[:alnum:]+]$","", $artiest);

werkt voor stap 1

[ Voor 73% gewijzigd door RSD op 23-04-2005 11:17 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Als stap 1 zou ik letters als é en ç omzetten naar hun 'normale' variant, of kunnen die tegenwoordig in een uri?

Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Maar hoe doe je dat? Letter voor letter of is er een reeks die al deze letters bevat? En wat is hun normale variant? Er zitten ook russische tekens ed tussen!

[ Voor 94% gewijzigd door RSD op 23-04-2005 11:45 ]


Acties:
  • 0 Henk 'm!

  • PanMan
  • Registratie: November 1999
  • Laatst online: 18-09 22:50

PanMan

Spun!

Misschien heb je hier niets aan... Maar als het voor een opzet is waar de database blijft bestaan, kan je de files bijvoorbeeld ook noemen naar de ID's van de database. Die kan je zo opzoeken. Voordeel is dat je zeker weet dat een filenaam maar 1x voor kan gaan komen (en dat wil je, want 2 files kunnen als files niet hetzelfde heten, maar in de db wel...). Dan krijg je dus 236.txt oid..
Anders denk ik dat je er aan vast zit om een paar string replaces (danwel met een fijne regex) te doen, op je titels.

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949


Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
ja nee, het moeten geen getallen worden.. echt leesbare cijfers, maar ik vraag me af hoe het gaat met russische tekens, zoals ik hem nu heb, haalt hij alle russische tekst weg.


PHP:
1
2
3
4
$artiest = strtolower($artiest);
$artiest = eregi_replace(" +", " ", $artiest);
$artiest = eregi_replace(" ", "-", $artiest);
$artiest = eregi_replace("[^-[:alnum:] +]","",$artiest);
Pagina: 1