Szövegben url-ek linkké alakítása automatikusan php-vel

Szokás fórumokon, vendégkönyvekben a beírt url-eket automatikusan felismertetni és átalakítani kattintható linkké. Erre jól használhatók a reguláris kifejezések. Az első példa rövid, de felismeri a linkeket, amik http-vel, https-el, www-el, wap-al kezdődnek. Viszont ha vessző kerül a végére, mert épp egy tagmondat végén van, vagy pont, esetleg felkiáltó jel, akkor az is bekerül a linkbe.

  1. <?php
  2. $szoveg = "Egy szövegben lehet link https-el kezdődve: https://www.google.com/accounts/ServiceLogin?service=mail
  3. vagy csak http-vel. http://rimelek.hu,
  4. www.phpstudio.hu ";
  5.  
  6. $szoveg = preg_replace("#(\s*)((http(s?)://)|(www\.|wap\.))(\S+\.\S+)#is", "\\1<a href=\"http\\4://\\5\\6\" target='_blank'>\\2\\6</a>", $szoveg);
  7. print $szoveg;
  8. ?>

A másik megoldás bonyolultabb, de az írásjeles hibát is megoldja:

  1. <?php
  2. function url2link($matches)
  3. {
  4.         $i = strlen($matches[0]);
  5.         $szoveg = trim($matches[0],',.!');
  6.         $j = strlen($szoveg);
  7.         return preg_replace("#(\s*)(http(s?)://)?(.*)#is",
  8.                 "\\1<a href=\"http\\3://\\4\" target='_blank'>\\2\\4</a>",
  9.                 $szoveg).substr($matches[0],$i-1,$i-$j);
  10. }
  11.  
  12. $szoveg = preg_replace_callback("#(\s*)((http(s?)://)|(www\.|wap\.))(\S+\.\S+)#is",'url2link',$szoveg);
  13. print $szoveg;
  14. ?>
Megosztás/Mentés

Lapozás PHP-ben

Nem is olyan régen írtam egy blogot a dinamikus több sorba tördelésről. Annak folytatásaként fogható fel ez a kis ismertető. Mert hát nagyon hasznos, hogy 500 ezer képet, vagy adatbázisbeli rekordot meg tudsz jeleníteni egy weboldalon több sorban oszlopokba rendezve, csak hát elég valószínűtlen, hogy azt kibírná a böngészőnk, vagy akár a szerver. De elég, ha csak saját emberi tulajdonságunkra gondolunk, a türelmetlenségre. Mi a megoldás? Természetesen a lapozhatóság megvalósítása. Amire többféle megoldás létezik, és sok fórumon, sok blogban foglalkoztak / foglalkoznak a témával. Némelyik igen szép kinézetet is kap. Osztályokat is írnak rá. Ez alól valószínű én sem leszek kivétel, de addig is nézzünk pár primitívebb módszert.

Az első példa egyszerű tömböt fog használni az adattárolásra. Akár csak a sortörésről szóló blogom első példái is.

Oké. Van egy kérdésem. Mi az első, ami eszedbe jut a lapozással kapcsolatban, és szükséges ahhoz, hogy egyáltalán legyen lapozás? Igen igen. Jól gondolod. Hogy hány elemet akarsz megjeleníteni egy oldalon egyszerre. Akkor add is meg gyorsan. Én tízet választok.

Megosztás/Mentés

Lista megjelenítése táblázattal php-ben

Nos, amire a cím is utal, nem egy nagyon bonyolult probléma, ám annál gyakoribb.
Elég, ha csak egy képgalériát szeretnél, ahol egy sorban maximum 10 képet szeretnél látni, vagy akár annál kevesebbet, függetlenül attól, hogy mekkorák a képek. Adott esetben az egyik sorban lehet, hogy csak 5 kép van, a másikban pedig 6, mert több fért el.

De bármilyen adattömeget szükség lehet ilyen módon megjeleníteni. Legyen az egy webes fájlkezelő, mint például a windows intéző, ahol szintén rendezett módon jelennek meg az ikonok, vagy akár bármilyen adatbázisban tárolt információ.

Erre mutatok pár példát, mert már túl sokszor írtam ezt le különböző fórumokon, és nyilván nem is csak én. De gyakran nehéz rátalálni a probléma megoldására egy fórumban, ahol temérdek kérdés és válasz váltja egymást egyetlen témában.

Megosztás/Mentés

Gömb rajzolása PHP-ben

Gömb logó

Ez a script már régen készült, és közel sem tökéletes megoldásokkal. De mivel újra írni már nincs kedvem, ezért így mutatom meg :)

A bal felső sarokban levő képhez hasonló gömböt, illetve különböző variációit lehet generálni. Minden fontos tulajdonsága beállítható url-ből. Így tesztelhetők a lehetőségek.


Tulajdonságok:

  • Színek:
    Minden szín a következő formában adható meg: RRR,GGG,BBB
    Ahol az egyes betűk az RGB-nek megfelelően a vörös, zöld és kék színek mértékét jelentik 0 és 255 között.

    • fill: Gömb színe (kitöltése)
    • bgcolor: Kép háttere, ha jpeg formátumú
    • border: Választható szegély az alakzatnak
    • monox,monoy: Nevüknek megfelelően vízszintes és függőleges irányban húzott ívek színe. Alapértelmezetten minden ív más színű.
    • _0 -től _7-ig: Az ívek színkészlete változó színek esetén
  • Méretek:

    • space: Az ívek távolsága egymástól pixelben.
    • width: A kép szélessége (Alapértelmezetten azonos a rajz szélességével)
    • height: A kép magassága (Alapértelmezetten azonos a rajz magasságávall)
    • w: A rajz szélessége
    • h: A rajz magassága

  • type: Kép típusa. (jpeg,jpg,png és gif a megengedett)
  • quality: A kép minősége 0 és 100 között. (Csak jpeg formátum esetén)
Megosztás/Mentés

Oszlopgrafika

Jól el lehet szórakozni PHP-ben is a grafikával. Van több olyan grafikai scriptem, ami véletlenül jött létre, mert csak próbálkoztam mindenféle koordinátagenerálással, aztán lett, ami lett. Ilyen a következő képen látható kis ábra is. Egy az egyben PHP-val generálva. Maga az ötlet nem véletlen. De a színek igen.

PHP kép

Forráskód megtekintése:

Megosztás/Mentés

Gömb rajzolása pascalban

Ez egy kis pascal nyelven írt grafikus program, amivel olyasmi alakzatot lehet kirajzoltatni, ami legalább emlékeztet egy gömbre. Konfigurálható a forráskód elején, hogy a gömb milyen paraméterekkel rendelkezzen. Ehhez sajnos újra kell fordítani a programot. Akinek van rá lehetősége, kipróbálhatja.

Letöltés
Képernyőképek:

1. screenshot
2. screenshot

Megjegyzés:
Az egavga.bgi fájlnak az exe mellett kell maradnia!

Megosztás/Mentés

Ne alázkodj, ne mondd, hogy sürgős!

Elakadtál? Kérdésed van? Tedd fel, csak így ne!!

  • Lécciii segítseket. pls!! (sírószmájli)
  • Segítsetek, nagyon kérlek titeket!
  • Nagyon kezdő vagyok. Ez az oldal, a legjobb, amit eddig láttam. Ti olyan okosak vagytok, segítenétek?
  • Sziasztok, van egy nagyon nagy problémám. Segítsetek kérlek! Nagyon sürgős lenne. Légyszi!!
  • Még csak 12 éves vagyok. Segítsetek!

Hogy miért?

  • Idegesítő, szánalmas a sírás, könyörgés, megalázkodás. Ellenkező hatást vált ki a várthoz képest
  • Ne nyaljunk senkit tisztára. Mosakodnak ők is eleget!
  • Ne mondd, hogy a te problémád sürgős. Mindenkié az! Ha határidőre vállalsz olyan munkát, amihez nem értesz, az a te gondod, terhed és felelősséged.
  • Kit érdekel, ki hány éves? Az online világban bárki bármit mondhat a koráról. Ráadásul vannak nagyon fiatalok, akik nagyon értelmesek, és huszonévesek, akik szörnyen buták és gyerekesek, értetlenek. Ha szóba is kerül a kor, ne az legyen az első, hogy a fórumozók orrára kötöd, hány éves vagy.

Mi az amit tenni kéne?

Kérdezni, és türelmesen várni. Próbálkozni máshol is. Megtartani a méltóságunkat, már ha volt valaha is. Egy komoly kérdésre sokkal hamarabb jöhet válasz, mint egy idegesítőre.

Megosztás/Mentés

Hibakeresés PHP-ban

Tartalom

Bevezető
Elég gyakori, hogy alapvető hibákat nem találnak meg kezdő, vagy sokszor haladó programozók sem. Ehhez próbálok segítséget nyújtani pár hasznos tanáccsal. Érdemes megfogadni őket. Leginkább PHP-ról fogok szólni a cikkben, de megpróbálok általánosságban is megemlíteni pár dolgot.

Alapvetően kétféle hibát különböztethetünk meg.

  1. Szintaktikai
    Ebben az esetben valószínűleg elírtunk valamit a programkódban, és egy olyan utasítás került a forrásba, ami nem értelmezhető az adott nyelven, vagy lehagytunk egy fontos elemet figyelmetlenségből. Például egy pontosvesszőt az utasítás végén, ha a programnyelv igényli. Ha szintaktikai hibát ejtünk, a program nem fordul le, illetve script nyelv esetén hibaüzenettel leáll értelmezéskor.

  2. Szemantikai
    Meglehet, hogy a kódunk szintaktikailag helyes, és látszólag minden a helyén van, de nem gondoltuk át kellőképpen, hogy mit is szeretnénk megvalósítani. Esetleg nem ismerjük kellőképpen a használt függvények működését, és rossz módszert alkalmazunk, aminek következtében a program bár helyes, tényleg nem azt fogja „művelni” amit elvárnánk tőle.

Nos, egyik esetben sem a számítógépünket kell püfölni, vagy gondolkodás nélkül írni egy fórumra, és leírni, hogy „nem működik, segítsetek”. Első lépés, hogy gondolkodunk magunk, és utánajárunk, miben hibáztunk. Majd csak a második lépés lehet, hogy más segítségét is igénybe vesszük. Elvégre emberek vagyunk. Lehet, hogy nem tűnik fel valami akkor sem, ha szinte kiszúrja a szemünket.

Na de nézzük meg a lehetséges hibajelenségeket, és a hiba detektálásának módjait.

Megosztás/Mentés