![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Chce nieco przysypieszyc dzialanie skryptu, wiec mysle o przefiltrowaniu jednego ciagu przez preg_matche.
Tekst wygladac moze tak: test1.test2.test3 lub test1.test2.test3.* Oczywiscie mozna dopsiac jeszcze test4.test5 itd. Natomiast pozostale mozliwosci takie jak: .test.test lub test.test. lub test.*.test lub test.test..test lub test.test.** lub *.test.test itp. nie wchodza w gre. Ogolnie mowiac potrzebne mi jest to do funkcji includujacej inne pliki - cos w stylu import z Javy czy using z c#, wiec musze przefiltorawac podany string. Jakies pomysly na wyrazenie regularne ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem dokladnie jak w Javie wyrazenie import dziala, ale u mnie wykombinowalem cos takiego (moze komus sie przyda):
[php:1:8aa77e4482] <?php /** * Import system class to global namespace * @param string $s * @return void * @access public * @package import */ function import($s) { static $root; if (!isset($root)) { $root = realpath(dirname(__FILE__) . '/../') . '/'; } static $imported = array(); if (isset($imported[$s])) { return; } $arr = explode('.', $s); if (is_dir($root . implode('/', $arr))) { $arr[] = $arr[count($arr) - 1]; } $file = $root . implode('/', $arr) . '.php'; if (!file_exists($file) || !is_file($file)) { return trigger_error("import() failed, could not import `$s`", E_USER_ERROR); } require_once $file; $imported[$s] = true; } ?> [/php:1:8aa77e4482] Jest kilka katalogow z bibliotekami, ponizej listing, jak sa rozlozone libsy systemowe (czyli takie ktore nie sa w zaden sposob powiazane z dana aplikacja - ogolne, przydatne w wielu aplikacjach) Kod system/
system/.htaccess system/Dataspace.php system/Example.php system/import.php system/license.txt system/printR.php system/Random.php system/Stack.php system/Config/ system/Config/Ini.php system/Date/ system/Date/Common.php system/Date/const.php system/Date/Date.php system/Date/Gmt.php system/Date/Local.php system/Date/Utility.php system/Db/ system/Db/Db.php system/Db/Debug.php system/Db/debug.tpl system/Db/Pager.php system/Db/Mysql/ system/Db/Mysql/Mysql.php system/Db/Mysql/Result.php system/Db/Oci8/ system/Db/Oci8/oci8.php system/Db/Oci8/Result.php system/Db/Oci8/utlxplan.sql system/Db/Pgsql/ system/Db/Pgsql/Pgsql.php system/Db/Pgsql/Result.php system/Db/Sql/ system/Db/Sql/Result.php system/Db/Sql/Sql.php system/Error/ system/Error/Handler/ system/Error/Handler/error.tpl system/Error/Handler/Handler.php system/Error/Handler/showSource.php system/Html/ system/Html/Tag.php system/Http/ system/Http/Cookie.php system/Http/Request.php system/Http/Response.php system/Http/Utility.php system/Http/Var.php system/Http/Session/Session.php system/Http/Session/Handler/Db.php system/Http/Upload/Upload.php system/Http/Upload/File.php system/Image/ system/Image/Image.php system/Image/Utility.php system/Io/ system/Io/Directory.php system/Io/File.php system/Io/Path.php system/Mail/ system/Mail/Mail.php system/Mail/Utility.php system/String/ system/String/String.php system/String/Utility.php system/Template/ system/Template/Plugin.php system/Template/Template.php system/Template/plugins/ system/Template/plugins/cycle.php system/Template/plugins/escape.php system/Template/plugins/htmlcheckboxes.php system/Template/plugins/htmloptions.php system/Template/plugins/htmlselectdate.php system/Template/plugins/truncate.php system/Unique/ system/Unique/mysql.sql system/Unique/oci8.sql system/Unique/Unique.php Przyklady: [php:1:8aa77e4482] import('system.Http.Var'); import('system.Db'); import('system.Http.Cookie'); [/php:1:8aa77e4482] Funkcja import dziala w ten sposob, ze jak bede chcial rozbudowac dana klase to nie bede musial zmieniac kodu aplikacji Czyli w aplikacji wpisujac [php:1:8aa77e4482] import('system.Dataspace'); [/php:1:8aa77e4482] Klasa zostanie includnieta, niezaleznie czy struktura bedzie taka: Kod system/Dataspace.php
czy taka: Kod system/Dataspace/
system/Dataspace/Dataspace.php system/Dataspace/Costam.php Biblioteki ogolne powiazane w jakikolwiek sposob z dana aplikacja trzymam w katalogu "application/". Tam struktura klas jest podobna. np. [php:1:8aa77e4482] import('application.Registry'); import('application.Test.Connection'); [/php:1:8aa77e4482] Myslalem tez nad zaimplementowaniem gwiazdki * w funkcji import czyli cos w stylu: [php:1:8aa77e4482] import('system.Http.*'); [/php:1:8aa77e4482] Ale na razie jest to niepotrzebne, pozatym powstalby niepotrzebny narzut, gdyz na razie nie spotkalem sie z sytuacja zebym potrzebowal wszystkich klas z danego katalogu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 23:22 |