הירשמו לאתר שגיב SEO ותישארו מעודכנים עם חדשות קידום אתרים, מידע, טיפים וטריקים לבוני אתרים ועוד.
הצטרפו היום! ו... אל דאגה, אנחנו ממש לא מהנסחפים ולמעשה שולחים דיוור רק פעם בחודש!
פונקציה מעולה ופשוטה מאוד לשימוש אשר עושה שימוש בפקודה mb_strlen כדי לספור תווים של מחרוזת טקסט כלשהו בצורה מדויקת ואפילו מחרוזת טקסט בעברית... * הנה כלי אשר עושה שימוש בפונקציה זאת: כלי לספירת מילים
function count_string_chars($string) { $charsCount = mb_strlen($string); return $charsCount; }
$string = "אני מוצא סניפטים שימושיים באתר שגיב SEO!" // יחזיר את המספר 70 echo count_words($string);ספירת תווים בעזרת PHP
פונקציה קטנה ושימושית שמאפשרת לספור את כמות המילים במחרוזת טקסט כלשהיא בצורה קלה ומהירה! הסניפט משתמש ברגקס כדי לספור את התווים ולכן עובד גם בשפה העברית בצורה מדויקת מאוד! * הנה כלי אשר משתמש בפונקציה זאת: כלי לספירת מילים
<?php function count_words($string) { $wordsCount = count(preg_split('~[^\p{L}\p{N}\']+~u',$string)); return $wordsCount; } ?>
$string = "אני מוצא סניפטים שימושיים באתר שגיב SEO!" // יחזיר את המספר 7 echo count_words($string);ספירת מילים בעזרת PHP
עוד פונקציה שימושית עם PHP שעוזרת לנו לחסוך בCSS מיותר וליצור ריווח (Margin) אשר מותאם בדיוק לצרכים שלנו בשורה אחת ובצורה מהירה עבור משתנה מכל סוג.
function margin($direction, $value) { if($direction) { echo 'margin-'.$direction.':'.$value; } else { echo 'margin:'.$value; } }
// ריווח לימין בפיקסלים <div style="<?php margin('right', '20px'); ?>">ריווח לימין הדגמה</div> // ריווח לכל הכיוונים עם אחוזים <div style="<?php margin('', '5%'); ?>">ריווח לכל הכיוונים</div>ריווח עם PHP
אם אתם רוצים לחסוך המון המון שורות CSS מיותרות כדי להגדיר רוחב במקרים בהם יש לכם רוחבים שונים של אלמנטים ברחבי האתר אז הפונקציה הזאת בדיוק בשבילכם. בעזרת פונקציה זאת תוכלו להגדיר רוחב גמיש בצורה זורמת וטבעית.
function width($value) { $wid = 'width: '.$value; echo $wid; }
<div style="<?php width('30%'); ?>"> הדגמה </div>רוחב גמיש
הפונקציה הבאה משתמשת במידע המובנה בדפדפן של הגולש כדי לזהות אם הגולש מגיע אל האתר שלכם ממכשיר סלולרי, אייפד או אפילו אייפוד ומחזירה את סוג הסלולרי. בצורה כזאת אתם יכולים להתאים את הסטייל והתצורה של האתר שלכם לצפייה בסלולרי המתאים.
<?php function is_cellphone() { $iphone = (bool) strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone'); $iPod = (bool) strpos($_SERVER['HTTP_USER_AGENT'], 'iPod'); $iPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'], 'iPad'); $Android = (bool) strpos($_SERVER['HTTP_USER_AGENT'], 'Android'); $webOS = (bool) strpos($_SERVER['HTTP_USER_AGENT'], 'webOS'); $BlackBerry = (bool) strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry'); if($iphone) { return 'iphone detected';} elseif($iPod) { return 'iPod detected';} elseif($iPad) { return 'iPad detected';} elseif($Android) { return 'Android detected';} elseif($webOS) { return 'webOS detected';} elseif($BlackBerry) { return 'BlackBerry detected';} else { // No Cell Phone! } } ?>
<?php $whatCellphone = is_cellphone(); if($whatCellphone == 'iphone') { // אם אייפון - טען קובץ סטייל מסוים <link rel="stylesheet" type="text/css" href="iphone-style.css" media="all" /> } ?>זיהוי גולש מסלולרי
הפונקציה הבאה היא פונקציה שימושית ביותר שעשיתי לה קצת התאמה כדי לשרת את המטרות שלי. מה שהיא עושה למעשה הוא להחזיר את ההבדל בין שני תאריכים שונים ומחזירה את הפרמטר שאתם צריכים כלומר שנים, ימים, או חודשים. הפונקציה קצת מתחכמת אז שימו לב ובהצלחה.
<?php function calc_date_diff($date1, $date2, $type){ // post date: $date1 // current date: $date2 // ${$type} = days OR months OR years $diff = abs(strtotime($date2) - strtotime($date1)); $years = floor($diff / (365*60*60*24)); $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); return ${$type}; } ?>
<?php $date1 = '2012-12-01'; $date2 = '2012-12-24'; $type = 'days'; // בחרו את המשתנה הרצוי $daysDifference = calc_date_diff($chequeFixesDate, $currentDate, 'days'); ?>הבדל בין שני תאריכים בPHP
פונקציה קטנה ושימושית בעזרתה ניתן להחזיר את כמות הלייקים של דומיין מסוים אבל לא רק. המידע המוחזר מאפשר לנו לקבל את כמות הלייקים, כמות השיתופים וכמות התגובות אשר כוללות אזכור של כתובת האתר המדובר.
function fbdata($url) { // QUERY FACEBOOK $query = "select total_count,like_count,comment_count,share_count,click_count from link_stat where url='{$url}'"; $call = "https://api.facebook.com/method/fql.query?query=" . rawurlencode($query) . "&format=json"; // CURL THE RESULT $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $call); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); curl_close($ch); return json_decode($output); }
<?php // להציג את כמות הלייקים $fbdata = reset(get_fb_likes($singleUrl)); $fbdata->like_count; // להציג את כמות השיתופים $fbdata = reset(get_fb_likes($singleUrl)); $fbdata->share_count; // להציג את כמות התגובות $fbdata = reset(get_fb_likes($singleUrl)); $fbdata->comment_count; ?>ספירת לייקים של אתר
הסניפט הבא מאפשר לעשות בדיקה מהירה של דף / אתר מרוחק ולהחזיר מאותו URL קצה את כל הקישורים היוצאים בדף. סניפט מעניין מאוד איתו ניתן בעזרת שילוב של קוד נלווה ליצור כלי שבודק קישורים יוצאים ואפילו בודק אם אותם קישורים תקינים או שהם מובילים לדף שאיננו קיים.
<?php $html = file_get_contents('https://www.example.com'); $dom = new DOMDocument(); @$dom->loadHTML($html); // תפוס את כל תגי הקישור בתוכן שחזר $xpath = new DOMXPath($dom); $databox = $xpath->evaluate("/html/body//a"); // המר לרשימת URL'ים echo '<ul>'; for ($i = 0; $i < $databox->length; $i++) { $href = $databox->item($i); $outurl = $href->getAttribute('href'); echo '<li>'.$outurl.'</li>'; } echo '</ul>'; ?>מציאת כל הקישורים בדף מרוחק
סניפט קצר ושימושי שניתן לשדרג למטרות שלכם אשר מבצע הפניה למיקום רצוי. ניתן לטעון את הפונקציה פעם אחת ואז לקרוא לי ברחבי האתר שלכם ואפילו להשתמש בהפניות במקרים כמו לדוגמה גולש שאיננו מחובר מופנה לדף אחר.
function redirect_to($newlocation) { if ($newlocation !=NULL) { header("Location: {$newlocation}"); exit; } }
<?php $newlocation= 'example.php'; redirect_to($newlocation); ?>הפניה לעמוד רצוי עם PHP
פונקציה שימושית לבוני אתרים ובמיוחד בשלב הDebuggin אשר מחזירה את המסלול / התיקייה של הקובץ בו אתם צופים. הנה פונקציה דומה בוורדפרס שלא תגידו שהזנחנו אתכם!
<?php function current_file_path() { // check if we are dealing with HTTPS server or HTTP $url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'https://'; $url .= $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']); // Convert Windows (/ to \) root to server root $url = str_replace('\\', '/', $url); if (strlen($url) != strrpos($url, '/') +1) {$url .= '/';} return $url; } ?>
<?php echo current_file_path(); ?>המיקום של הקובץ הנוכחי
פונקציה קטנה ויעילה שהיא חלק ממערך הגנה על טפסי שאתם מציבים ברחבי האתר. פונקציה זאת בודקת אם get_magic_quotes_gpc פעיל בשרת שלכם. אם כן get_magic_quotes_gpc שם את התו \ לפני תווים בעייתים. אם פונקציה זאת לא פעילה ובכל מקרה הפונקציה תריץ גם את הפקודה mysql_real_escape_string אשר שמה תו \ לפני תווים מסוימים כמו לדוגמה x00
<?php function cleaninput($original){ if (get_magic_quotes_gpc()) { $clean = mysql_real_escape_string(stripslashes($original)); }else{ $clean = mysql_real_escape_string($original); } return $clean; } ?>
$somevar = $_POST['somevar'] // קולטים משתנה מהטופס לדוגמה // מנקים את אותו משתנה $clean_somevar = cleaninput($somevar)ניקוי קלט משדה בטופס כהגנה מ-SQL Injection
פונקציה נחמדה מאוד שעוזרת לכם לדעת כמה עמוס השרת עליו אתם מאחסנים את האתר שלכם ומחזירה ארבעה פרמטרים והם כך כמות שטח האחסון שיש לשרת שלכם, כמה מאותו שטח בשימוש וכמה פנוי באחוזים.
<?php class serverInfo{ function Dbyte($Wert){ if ($Wert >= 1099511627776) { $Wert = round($Wert / 1099511627776, 1) . " TB"; } elseif ($Wert >= 1073741824) { $Wert = round($Wert / 1073741824, 1) . " GB"; } elseif ($Wert >= 1048576) { $Wert = round($Wert / 1048576, 1) . " MB"; } elseif ($Wert >= 1024) { $Wert = round($Wert / 1024, 1) . " kB"; } else { $Wert = round($Wert, 0) . " Bytes"; } return $Wert; } function Memory(){ $mem = file_get_contents("/proc/meminfo"); if (preg_match('/MemTotal\:\s+(\d+) kB/', $mem, $matches)) { $total = $matches[1]; } unset($matches); if (preg_match('/MemFree\:\s+(\d+) kB/', $mem, $matches)) { $free = $matches[1]; } $free; $total; $usage = $total - $free; $precent = 100 * $usage / $total; return array( "total" => $this->Dbyte($total*1024), "free" => $this->Dbyte($free*1024), "usage" => $this->Dbyte($usage*1024), "precent" => round($precent,1), ); } } ?>
// USAGE $object = new serverInfo(); $serverMemory = $object->Memory(); // GET ELEMENTS echo ' <ul> <li>סהכ זכרון: '.$serverMemory[total].'</li> <li>זכרון לא בשימוש: '.$serverMemory[free].'</li> <li>זכרון בשימוש: '.$serverMemory[usage].'</li> <li>זכרון חופשי באחוזים: '.$serverMemory[precent].'%</li> </ul> ';שטח אחסון בשימוש / פנוי על השרת שלכם
פונקציה קצרה שמחזירה את הגרסה של הCPU של השרת. פשוט להכניס ולקבל את המידע (ריגול אחר השרת שלכם פונקציה ראשונה בסדרה)
<?php function cpu_ver(){ $load = sys_getloadavg(); return round($load[0], 1); } ?>
<?php echo cpu_ver(); ?>מחזיר את הCPU של השרת
בדומה לפונקציות רבות אשר אנו מכלילים באוסף הסניפטים של PHP גם הפונקציה הבאה משרתת מקרה יחיד וייחודי ודי נדיר בו אנו רוצים לוודא / לבדוק אם יש לנו Curl על השרת שלנו כמו לדוגמה שנרצה לעשות אם יש לנו שרת PHP או אחסון חינמי איפשהו. הפונקציה עושה פעולה פשוטה והיא לבדוק אם הפונקציה אשר אחראית על Curl קיימת ומחזירה לנו תשובה כתגובה - קיים או לא קיים. פשוט ומהיר!
function check_ifcurl_installed() { if(in_array ('curl', get_loaded_extensions())) { return 'IT WORKS'; } else { return 'IT DOESNT'; } } echo check_ifcurl_installed();בודקים אם Curl מותקן על השרת שלנו
סניפט פשוט מאוד ולא חכם כל כך אבל שימושי שמאפשר לשנות את הגודל של תמונה נבחרת בצורה מהירה וקלה ובעזרת פונקציה קטנה מאוד וקלה לשליטה.
<?php header('Content-type: image/jpeg'); // כאן שולטים במסלול התמונה $imgfile = 'https://sagive.co.il/tools/image-colors-scraper/img/sagive-seo-300x300-001.jpg'; // כאן שולטים בגודל התמונה באחוזים -> 0.7 = 70 אחוז $percent = 0.7; list($width, $height) = getimagesize($imgfile); $newwidth = $width * $percent; $newheight = $height * $percent; $thumb = ImageCreateTrueColor($newwidth,$newheight); $source = imagecreatefromjpeg($imgfile); imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagejpeg($thumb); ?>שינוי גודל תמונה בצורה דינמית
פונקציה מובנית בPHP אשר מאפשרת לקבל את המידות של תמונה מרוחקת בקלות ובשורה אחת!
<?php $imageData = getimagesize($imgUrl); ?>
<?php echo 'רוחב'. $imageData[0]; echo 'גובה'. $imageData[1]; echo 'סוג'. $imageData['mime']; ?>מידות תמונה מרוחקת
הסניפט הבא עושה פעולה פשוטה מאוד אבל שימושית בהחלט בכמה פרויקטים שבנינו. מה שהוא עושה זה לנקות את נערכים עצמם בתוך מערך מרווח בתחילת הערך ובסוף הערך. בשפת PHP קוראים לזה TRIM ואנו מחילים אופציה זאת על כל הערכים בArray.
function cln_empty_keys($array) { $array = array_filter($array, create_function('$a','return trim($a)!=="";')); $array = array_map('trim', $array); return $array; }ניקוי רווחים בתוך ערכים בArray
הסניפט הבא הוא הדגמה של החזרת ערך רנדומלי מתוך מערך (array) - קל ומהיר ויעיל פעמים רבות. אני עשיתי שימוש רב בצורה זאת החזרת ערך רנדומלי כדי להציג מידע מעניין לגולשים או לאפליקציות שונות ומגוונות.
<?php $example_array= array( 'example value 01', 'example value 02', 'example value 03', 'example value 04', 'example value 05', 'example value 06', 'example value 07', ); $k = array_rand($example_array); $v = $example_array[$k]; echo $v; ?>החזרת ערך רנדומלי ממערך (array)
בדוגמה הבאה אני מראה איך להציג את כל התמונות בתוך תיקייה במחשב שלכם בעזרת PHP... אני משתמש בדוגמה זאת באופן אישי כדי לעשות לתמונות של אתר מסוים אופטימיזציה בעזרת PageSpeed אבל אפשר כמובן להמיר לכל מטרה.
<?php // זכרו לשנות את המסלול images-resizer/ למסלול של התיקייה הרצויה $images = array_diff(scandir('images-resizer/'), array('..', '.')); foreach($images as $image) { echo ' <div class="m3 fleft"> <img src="images-resizer/'.$image .'" /> </div> '; } ?>הצגת כל הקבצים בתוך תיקייה
פקודה פשוטה מאוד אשר מובנית בPHP ואיננה סניפט כלל אלא כאן רק להתייחסות (אוהב הכל באותו עמוד). פקודה זאת מחזירה את הגרסה של הPHP אשר מותקנת על השרת שלכם.
<?php // example: 'Current PHP version: 5.0' echo 'Current PHP version: ' . phpversion(); ?>בדיקת גרסת הPHP שמותקנת על השרת שלכם