Mijn CMS'je bestaat, afhankelijk van de wensen van de klant, uit een aantal modules. Elke module begint als volgt:
Ik ben nu bezig met een script wat automatisch door de modules/ directory browsed, en een overzicht maakt van alle geinstalleerde modules:
Het nadeel hierbij is dat de Description altijd op 1 regel moet staan, anders pikt de regexp alleen het deel wat direct achter Description staat op. Ik probeer nu een manier te verzinnen waarop ik een beschrijving die over meerdere regels loopt, in zijn geheel kan afvangen:
Mijn huidige functie retourneert in dit geval $description[1] = 'This module grabs a story from'. Wie heeft een idee om hier verder me te komen?
PHP:
1
2
3
4
5
| /** * Module Name: Story * Description: Gets a story from the database * Version : 1.2 */ |
Ik ben nu bezig met een script wat automatisch door de modules/ directory browsed, en een overzicht maakt van alle geinstalleerde modules:
PHP:
1
2
3
4
5
6
7
8
9
10
11
| foreach ($list as $key => $module) { $data = implode('', file(BASE_PATH.'/modules/'.$module.'.module')); preg_match("|Module Name:(.*)|i", $data, $module_name); preg_match("|Description:(.*)|i", $data, $description); preg_match("|Version :(.*)|i", $data, $version); if (isset($module_name[1]) && isset($description[1]) && isset($version[1])) echo $module_name[1] // etc... } |
Het nadeel hierbij is dat de Description altijd op 1 regel moet staan, anders pikt de regexp alleen het deel wat direct achter Description staat op. Ik probeer nu een manier te verzinnen waarop ik een beschrijving die over meerdere regels loopt, in zijn geheel kan afvangen:
PHP:
1
2
3
4
5
6
7
8
| /** * Module Name: Story * Description: This module grabs a story from * the database, then parses it to * some function, which outputs * the formatted text to the client * Version : 1.2 */ |
Mijn huidige functie retourneert in dit geval $description[1] = 'This module grabs a story from'. Wie heeft een idee om hier verder me te komen?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."