Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: regexpeistä

Biotank [27.10.2010 20:34:38]

#

Olen byggaamassa omaa tekstipohjaista tietokantajärjestelmää omaan käyttöön. Tarkoitus olisi, että selainpohjaisella käyttöliittymällä voisi ajaa omat MySQL-tyyliset kyselynsä.

IN musicians SET firstName = 'Justin Maria', familyName = 'Bieber', commonName = '', genre = 'pop, rnb', age = 10

Ongelmia tuottaa string-muotoiset muuttujat, joilla on monenlaisia mahdollisia arvoja: tyhjä, yksi- tai moniosainen, välissä voi olla pilkkujakin...

Tämä tunnistaa yksiosaiset määrittelyt:

<?php
$regexp = "/[a-zA-Z0-9]+\\=\\'[a-zA-Z0-9]+\\'/";
?>

\\b:tä, \\,:a ja muita ei voi heittää hakasulkuihin. Miten tuota pitäisi muuttaa, jotta se sallisi myös välilyönnit, pilkut ja tyhjät muuttujan arvot?

Mod. korjasi kooditagit

Metabolix [27.10.2010 20:44:50]

#

Tässä on yksi mahdollisuus:

$regexp = "/([a-zA-Z0-9_]+)\\s*=\\s*(?:([0-9]+)|'((?>\\\\.|[^'\\\\])+)'|\"((?>\\\\.|[^\"\\\\])+)\")/";

Saat osumataulukon kohdasta 1 kentän, kohdasta 2 lukuarvon (jos on) ja kohdasta 3 tai 4 tekstiarvon (jos on). Koodi tukee myös escapeja ('\'').

Lopuksi vielä muistutus, että ei ole tarkoitus vain leikkiä vaan haluat oikeasti käyttää tietokantaa, SQLite voisi olla hyvä valinta.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta