php-cikk

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.

<?php
$szoveg = "Egy szövegben lehet link https-el kezdődve: https://www.google.com/accounts/ServiceLogin?service=mail
vagy csak http-vel. http://rimelek.hu,
 www.phpstudio.hu "
;

$szoveg = preg_replace("#(\s*)((http(s?)://)|(www\.|wap\.))(\S+\.\S+)#is", "\\1<a href=\"http\\4://\\5\\6\" target='_blank'>\\2\\6</a>", $szoveg);
print $szoveg;
?>

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

<?php
function url2link($matches)
{
        $i = strlen($matches[0]);
        $szoveg = trim($matches[0],',.!');
        $j = strlen($szoveg);
        return preg_replace("#(\s*)(http(s?)://)?(.*)#is",
                "\\1<a href=\"http\\3://\\4\" target='_blank'>\\2\\4</a>",
                $szoveg).substr($matches[0],$i-1,$i-$j);
}

$szoveg = preg_replace_callback("#(\s*)((http(s?)://)|(www\.|wap\.))(\S+\.\S+)#is",'url2link',$szoveg);
print $szoveg;
?>

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

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