php-program

BB kód youtube videókhoz

Youtube videóra utaló borító kép

A napokban kérdezte tőlem egy ismerősöm, hogy hol talál youtube linket értelmező BB kódot. Nyilván, ma már mindenhez írtak ezerféle megoldást, de egy gyors Google kereséssel nem találtam megbízhatónak tűnőt, ezért kis gyakorlásként írtam egyet. Ezen azért nyilván lehetne még optimalizálni, de ha valakinek hiányzik egy függvény, amivel Youtube videók linkjét vagy csak azonosítóját alakíthatja lejátszható videóvá, akkor használja bátran.

Megosztás/Mentés

Egyszerű helyesírás-ellenőrző PHP-val. - pspell könyvtár

Egy kis helyesírás-ellenőrző programot fogok mutatni, amihez a PHP pspell könyvtárát használtam. Lényegében 3 függvényt használtam fel. Ezek pedig a pspell_new, pspell_check és pspell_suggest. Ezekkel már elérhető, hogy egy magyar szótár alapján az egyes szavak helyességét vizsgáljuk. Központozást és egyéb mondattani jellemzőket nem néz.

Szükséges

hozzá az aspell csomag. Illetve magyar szótárhoz az aspell-hu is. Ezen kívül a php5-pspell könyvtár kell, amit linuxon ( debian, ubuntu ) vagy apt-get -tel kell feltelepíteni, vagy aki a php-t is saját maga fordítja, az a --with-pspell kapcsolót kell használja. Ahhoz viszont szükséges előbb a libpspell-dev csomag is.

pspell_new

Ezzel lehet egy új szótárt megnyitni. Az első paraméterben a „hu_HU” megadja, hogy magyar szótár kell. A második paraméter különböző nyelvjárások megadására szolgál, mint például amerikai, brit, kanadai angol. Megadható zsargon is, de most a fontosabb két paraméter a 4. és 5. Ezek sorban a karakterkódolás és a mód. A móddal korlátozható a hibás szavakra adott javítási javaslatok száma. Én a leggyorsabb és legkevesebb javaslatot adó PSPELL_FAST konstanst adtam meg.

pspell_check

Ezzel lehet ellenőrizni egy szót. Fontos, hogy minden átadott string egy szónak számít. Tehát a mondatok szavakra darabolását meg kell oldani. Beleértve az írásjeleket is.

pspell_suggest

Végül pedig maradt a javaslatok lekérdezése. A javaslatokat ez a függvény tömbként adja vissza.

Helyesírás-ellenőrző program

Demo-t sajnos nem tudok mutatni, mert a tárhelyemen nincs telepítve a pspell. Ezért csak leírom, mit tud a program. Egy megadott szövegben megkeresi a hibás szavakat, majd azokat aláhúzva és kiemelve pirossal, megjeleníti. A hibás szavakra kattintva megjelennek a javaslatok, ha az űrlapon ez az opció ki van pipálva. Lehetne tovább cifrázni azzal, hogy a javaslatra kattintva a szövegben lecseréli a szót, de ezt én most nem oldottam meg.

És a program forráskódja:

Megosztás/Mentés

Meghívós loginrendszer - R.E. Login v2.0

R.E. Login v2.0

Az R.E. Login újabb verziója, vadi új objektum orientált motorral. Megőrizve az elődje funkcióit, de némileg kibővítve azt, és lehetőséget biztosítva további fejlesztések egyszerűbb elvégzésére. Ebből kifolyólag valószínű lesz is folytatás. Addig is köszöntsük szeretettel új barátunkat, az R.E. Login v2.0 -át.
R.E. Login v2.0.3 letöltése
Kövesd a projektet és keresd a legfrissebb verziókat a:
https://sourceforge.net/projects/relogin/ oldalon.


Figyelem: Ez a rendszer már elavult. Hibákat tartalmazhat és az új PHP verziókkal nem teljesen kompatibilis. Az init.php-be beillesztve az alább írt sorok egyikét a hibaüzenetek eltüntethetők, de a login használata csak saját felelősségre javasolt.

error_reporting(E_ALL | E_STRICT); // E_STRICT hibaüzenetek elrejtése
vagy
error_reporting(0); //minden hibaüzenet elrejtése

Kapcsolódó oldalak

Szerkesztve: 2010.04.04. 23:02
A loginban sikerült felfedezni pár hibát. Ezek javítva lettek. A hibák a következők voltak:

  • Profil módosítás fájl kimaradt a beállításokból, így csak changeprofile.php néven működött
  • Ugyanezen okból adminnak más profiljában is a saját profiljára mutató link volt.
  • Apró elírás a telepítőben. STMP volt SMTP helyett az egyik megjegyzésben
  • A telepítő nem ellenőrizte, hogy az SMTP host és port meg van-e adva. Sem az e-mail címeket.

Továbbá egy kiegészítés:

  • Most már opcionális az SMTP használat is. ha netán valakinek nem lenne semmilyen SMTP szerver használatára lehetősége, akkor SMTP nélkül küldi a leveleket.

Más nem változott. Ha bárki hibát észlel, kérem szóljon.
Köszönet tbence-nek az észrevételeiért és hibajelentésért.

A Login funkciói nagy vonalakban:

  • Regisztráció ( Opcionális meghívó mód, regisztráció blokkolása )
  • Beléptetés
  • Meghívó küldés
  • Privát üzenet küldés ( Kimenő, bejövő postafiók, Hír küldés )
  • Felhasználói profil
  • Gravatar és MKAvatar használat
  • Admin felület ( Tulajdonos és Admin rangot megkülönböztetve )
  • Bővíthető ranglista
  • Felhasználó lista
  • Online lista
  • Felhasználó keresése usernév szerint
  • Elfelejtett jelszó funkció

Megosztás/Mentés

Perzisztens PHP objektumok - R.E. DBObjects v2.1

Ez az osztálykönyvtár perzisztens megvalósítását teszi lehetővé PHP osztályoknak. Ezen kívül tartalmazza az R.E. Pagination néhány funkcióját, hogy a perzisztens objektumokat tartalmazó listát is lehessen inicializálni oldalanként.

R.E. DBObjects letöltése
Dokumentáció letöltése
Dokumentáció megtekintése

Előnyei

  • Frissítésnél és törlésnél nincs szükség sql kódok írására.

  • Az egyes adatbázis mezők objektum tulajdonságként kezelhetők. Így akár osztályon belül módosítható is az elérésük __get __set metódusokkal.

  • Egyedi metódusok definiálhatók a jellemzők kezelésére.

  • A kódolás egyszerűbb, gyorsabb, átláthatóbb.

Hátrányai

  • Összetett kulcsokat még nem tud kezelni.

  • Minden táblának tartalmaznia kell auto_increment elsődleges kulcsot.

  • A frissítés, törlés, lekérdezés valamivel lassabb lehet. Ez nyilvánvalóan adódik az előnyök megvalósításának idejéből.

  • Még nem képes több adatbázis kapcsolat egyidejű kezelésére

Példa a használatára:

  1. <?php
  2. //Ennek az osztálynak includeolása szükséges egyedül.
  3. require_once 'REDBObjects/REDBObjects.class.php';
  4. //Az összes mysql modult betölti a könyvtárból.
  5. REDBObjects::uses('mysql');
  6.  
  7. mysql_connect('localhost', 'root', 'password');
  8. mysql_select_db('teszt');
  9.  
  10. $list = new IsMySQLListClass(array(
  11.         'teszt'=>array('*')
  12. ));
  13. $list->tableName_signal = 'T_'; //Ez az alapértelmezett is
  14. $list->table_field_sep = '__'; //Az alapértelmezett az egy darab _ jel
  15. //sql kód FROM utáni részét kell megadni limit nélkül.
  16. //Plusz hogy hány rekordot kérdezzen le egy oldalra
  17. $list->page("teszt where field like 'A%'", 10);
  18. foreach ($list as $key => $object)
  19. {
  20.         print $object->T_teszt__id.', '.$object->field.'<br />'.PHP_EOL;
  21.         if ($object->id == 2)
  22.         {
  23.                 //Frissíti a field tulajdonság értékét.
  24.                 $object->field = 'P';
  25.                 $object->update();
  26.         }
  27. }
  28. ?>

Megosztás/Mentés

PHP ellenőrzőkód - R.E. Captcha v1.0

Captcha kép 1

Captcha kép 2

Újabb taggal bővült az "R.E. termékcsalád", (R.E. mint RimElek) mert hogy már szinte védjegyem. Ezúttal egy Captcha PHP osztály személyében. Itt bal oldalt található is két példa kép. Mint látható, az egyiken egy matematikai műveletet kell elvégezni, a másikon pedig csak felismerni a véletlenszerűen megjelenített karaktersorozatot. Mindkét esetben megzavarva a képet a szintén véletlenszerűen generálható vonalakkal.


R.E. Captcha v1.0 letöltése
R.E. Captcha v1.0.1 letöltése
Dokumentáció letöltése
Dokumentáció online megtekintése

A fent említett két mód között már mondanom sem kell, hogy hogyan vált a program. Természetesen véletlenszerűen. Persze nem csak fix betűtípussal használható. Tetszés szerint megadható bármilyen ttf betűtípus fájl. Állítható a betűméret, a kép méret és a kép típusa is. ( jpg, png, gif ) Ezen kívül a háttérszín is, bár leginkább világos háttérszín mellett mutat jól tapasztalataim szerint. Még érdekesség, hogy mivel gyakran fordultak hozzám oylan kérdéssel, hogy egy PHP-val generált képet hogyan lehet megjeleníteni egy html fájlban, így két megjelenítési lehetőséget is beépítettem.

Megosztás/Mentés

PHP lapozó - R.E. Pagination v1.0

Ahogy ígértem, én is elkészítettem saját lapozó osztálykönyvtáramat.

Legyen szó MySQL adatbázisról, xml-ről vagy egyszerű szövegfájlról, amiben az egyes "mezőket"
valamilyen karaktersor választja el egymástól, ez az osztálykönyvtár meg fog birkózni vele.
Rengeteg opcióval konfigurálható. Megadható, hogy egy oldalon hány elemet jelenítsen meg.
Megadható, hogy hogy nézzen ki egy oldalra mutató link a linklistában, illetve az, hogy
maga a link lista hány oldal linkjét tartalmazza egyszerre. Ezen kívül az előző, következő
legelső és legutolsó oldalra mutató linkek szövege, valamint a $_GET változóban az index neve,
ami az oldalszámot fogja jelenteni a lapozóban.

Új lapozókat is lehet írni hozzá. Az AREPagination és AREPItems absztrakt osztályokat örökítve.
De minden új osztályt az install.php -ben is hozzá kell adni az osztálykönyvtárhoz, hogy
az REPClasses osztály import() metódusával anélkül lehessen importálni az osztályokat, hogy tudnánk
annak pontos útvonalát a projectben. A REPClasses osztály installedClasses() metódusa pedig
visszaadja az összes telepített osztály nevét. Ha netán nem tudnánk, milyen osztályokból lehet gazdálkodni.
(Bár ez a fájlrendszeren is kideríthető)

REPagination letöltése
Dokumentáció letöltése
Dokumentáció online megtekintése

Megosztás/Mentés

PHP grafika - R.E. PHP Graph v1.0

Törpi a sztár

Ez a program egy PHP grafikus osztálykönyvtár próbálna lenni. És úgy néz ki, hogy eddig sikerült is neki. némely részei 2 éve porosodnak a gépemen, és most gondoltam úgy, hogy eljött az ideje ezen változtatni.
Letöltés: R.E. PHP Graph v1.0
Dokumentáció letöltése
Dokumentáció online megtekintése
Példa képek


Tudnivalók:
A dokumentációban nagyjából minden le van írva. De azért nagy vonalakban miről is van szó. A Graph.class.php-t kell beilleszteni a programba elsőként. Majd létre kell hozni egy grafika objektumot, amire rá lehet pakolni egyéb objektumokat:

  1. <?php
  2. require_once 'rephpgraph/Graph.class.php';
  3. $graph = new Graph(150,150);
  4. $graph->type = 'png';
  5. $graph->transparent = true;
  6. ?>

A szélességet és a magasságot kell csak megadni. Valamint megadható a kép típusa, és hogy legyen-e áttetsző a háttérszín. Ha szükség van objektumokra, akkor azt importálni kell a Graph osztály statikus importObject() metódusával. Ha paraméter nélkül hívjuk, akkor minden objektumot importál (Azaz osztályt). Ha stringet kap, akkor az osztály nevét kéri csak. Ha tömböt kap, akkor a tömbben kapja az osztályok neveit.
Az importIterator() ugyanezen elven működik. Csak iterátorokat importál.

Ezek után létre lehet hozni egy tetszőleges objektumot. És a $graph objektum add metódusával hozzá adható a képhez.

  1. <?php
  2. require_once 'rephpgraph/Graph.class.php';
  3. $graph = new Graph(150,150);
  4. $graph->type = 'png';
  5. $graph->transparent = true;
  6.  
  7. $ora = new AnalogClock(74,mktime(7,10,30));
  8. $ora->x = $graph->width-$ora->width/2;  //óra középpontjának koordinátái a képen
  9. $ora->y = $graph->height-$ora->height/2;
  10. $ora->background = $ora->createColor(0,0,130);
  11. $ora->transparent = true;
  12.  
  13. $graph->add($ora); //óra felvétele  aképre
  14.  
  15. $graph->flush(); //kép megjelenítése
  16.  
  17. ?>

A $graph objektum flush() metódusa küldi ki a képet a kimenetre. De lehetőség van lementeni is a képet a

  1. <?php
  2. $graph->save('fajlneve.png');
  3. ?>

metódushívással, vagy akár letöltésre kiküldeni a böngészőnek:

  1. <?php
  2. $graph->saveClient('fajlneve.png');
  3. ?>

Ennek kimenete:

Analóg óra
Természetesen az óra nem csak statikus időt tartalmazhat, hanem mindig az aktuális időt is.
Terveim közt szerepel még több objektum megírása, de egyelőre sok más elfoglaltság mellett halasztom a dolgot.

Megosztás/Mentés

PHP tortadiagram kezelő v1.1

Tortadiagram

Ez a php program Különböző adatok egymáshoz viszonyított arányát ábrázolja tortadiagramon.
Használatához mysql adatbázisra van szükség. Az adatbázis kapcsolódáshoz szükséges adatokat a config.php-ben lehet beállítani. Az 1.0 verzióhoz képest nem változott semmi, csak hibajavítások történtek. 4 éve még nem figyeltem az apróságokra annyira. Illetve beépítettem egy kijelentkezést is.
Letöltés: Tortadiagram kezelő v1.1


Telepítése
Ha a config.php-t beállítottad, másold fel a fájlokat a szerverre, és nyisd meg az index.php-t. Ekkor a telepítés megtörténik, és az sql.sql fájlt törli a program.
Ha az adatok helyesek a config.php-ben, de mégsem sikerül a telepítés, lehet, hogy már létezik a diagram tábla az adatbázisban. Ekkor ezt törölni kell és újra próbálkozni.

Adminisztráció
Mindent az admin.php oldalon tudsz beállítani. Nyisd meg ezt a szerveren böngészőből, és kezdd el felvenni az adatokat. Beállíthatod milyen színnel jelenjen meg a diagramon bármelyik adat. Törölhetsz és módosíthatsz. Jelszó szükséges. Alapértelmezetten: "password". De ezt is beállíthatod a config.php-ben.

Használata
Ahol a diagramot a mellette található színmagyarázatokkal megjelenítenéd, használd a következő php kódot:

  1. <?php include('tortadiagram/inc.php'); ?>

Ahol feltételeztem, hogy diagram fájljait a tortadiagram mappában lehet megtalálni.
Ha csak a tortadiagramra van szükség, akkor a következő html kód használható:
<img src="tortadiagram/diagram.php" alt="diagram" />

Képernyőképek

Megosztás/Mentés

Webes fájlkezelő php-ben

Fájlkezelő

Ezt a fájlkezelőt még a phpstudio-ra készítettem 2006 szeptemberében.
A kezelése és a megjelenése nem a legpraktikusabb / legmodernebb, de azért még így is hasznát lehet venni :)
Letöltés: Fájlkezelő


Amit tud
A fájlkezelõ képes mappákat, fájlokat másolni, áthelyezni, átnevezni, létrehozni, törölni.
Fájlokat meg is nyithatsz, és módosíthatod. Hasznos lehet apróbb hibák esetében, ha nem akarsz ftp-t használni.
Lehetőség van fájlok feltöltésére. Maximum 2MB lehet a fájlméret.

Beállítások:
A fajlkezelo.php nevű fájl elején megtalálod a $konyvtar változót.
Állitsd be azt a mappát, ahova szeretnéd tenni a feltöltött fájlokat.
pl : $konyvtar = "temp";
A belépéshez még szükség van egy jelszóra. Ezt is a fajlkezelo.php elején teheted meg.
Töltsd fel a fajlkezelo.php fájt a szervered gyökérkönyvtárába, és máris tallózhatsz a fájlok között.

Használata
Válaszd ki a mappát, ahonnan szeretnéd listázni a fájlokat. Ezt megtalálod a "honnan" link mellett.
Majd válaszd ki, hogy hova szeretnél másolni, áthelyezni, stb... Ezt pedig a hova link mellett találod.
Ha egy szintet feljebb szeretnél ugrani a mappákban, akkor válaszd az >>1 szint fel<< opciót.

Miután a fájlok listája megjelenik, válaszd ki a fájlt, amivel dolgozni szeretnél. És jelöld ki azt másolást, vagy az áthelyezést attól függöen, mit szeretnél a fájllal. Lehetõség van a fájlok átnevezésére. Ezt akár a másolás, akár az áthelyezés opcioval is megteheted. Ha csak másolni szeretnél ugyanabba a mappába, ahol a forrásfájl található, csak jelöld ki a másolást, és nevezd át a fájlt. A cél mappa (hova) egyezzen.

Ha már egy meglévő fájlt, pl egy php szkriptedet szeretnéd feltölteni, azt is megteheted.

Ha egy meglévő fájlt szeretnél szerkeszteni, válaszd ki a fájlok listájában a fájlt, és kattints a szerkeszt linkre.
Itt módosíthatod a fájlokat. A megnyitás csak szöveges fájlok esetében működik. Így például nem tudsz megnyitni képfájlokat szerkesztésre.

Fájlok méretét is megnézheted. Amikor kiválasztod a fájlt, automatikusan megjelenik az oldal tetején a mérete a nevével együtt.

Megosztás/Mentés