23-12-10, 22:32 | # 1 |
חבר וותיק
|
חייב פונצקציה פשוטה ב PHP!
שלום..
אני חייב פונקציה בPHP. נגיד ואני נותן לו כתובת כזו:http://www.google.co.il אני צריך שהוא יחזיר לי:google.co.il נגיד ונתתי לו כתובת כזו:http://news.walla.co.il אני צריך שהוא יחזיר:walla.co.il או למקרה שהוא מקבל כזו: http://www.youtube.com/watch?v=GfoUg...ure=grec_index אני צריך שהוא יחזיר: youtube.com בקיצור, אני צריך רק את הדומיין עצמו, בלי כל הדברים לפני ואחרי. מקווה שזה אפשרי ואם לא אז משהו קרוב. זה ממש יעזור לי, תודה!
__________________
מתכנת php אמין ומקצועי. מחירים נוחים! יצירת קשר: 0544378743 |
23-12-10, 22:41 | # 2 |
משתמש - היכל התהילה
|
|
23-12-10, 22:58 | # 3 |
חבר וותיק
|
תודה..זה נראה משה נחמד אבל זה לא עושה מה שביקשתי..זה לא מפרק את הקישור כמו שאני רוצה..
הנה למשל: PHP קוד:
Array ( [scheme] => http [host] => www.google.co.il ) תודה רבה.
__________________
מתכנת php אמין ומקצועי. מחירים נוחים! יצירת קשר: 0544378743 |
23-12-10, 22:59 | # 4 |
אין כמו ב127.0.0.1
|
והבעיה איפה?
תוציא כפלט את ערך התא host והכל עובד יופי. עריכה: אתה יכול גם לשלוח כFLAG את PHP_URL_HOST. זה יעשה בשבילך אפילו את העבודה השחורה שנשארה. |
23-12-10, 23:03 | # 5 |
חבר וותיק
|
אבל איפה בדיוק אני קובע שאני רוצה לקבל את host?
אני גם רוצה לקבל רק google.co.il בלי www.
__________________
מתכנת php אמין ומקצועי. מחירים נוחים! יצירת קשר: 0544378743 |
23-12-10, 23:15 | # 6 |
משתמש - היכל התהילה
|
נתנו לך פה פונקציה אשר מקבל URL כפרמטר ומחזירה מערך של נתונים שהוצאו מן הURL.
במידה ואתה יודע איך לשלוף מידה ספציפי מן מערך פשוט תשלוף את המידה המאוחסן בתא host.
__________________
בברכה, חגי בלוך גדות. |
23-12-10, 23:30 | # 7 |
אין כמו ב127.0.0.1
|
אז תעיף את הwww עם str_replace/preg_replace/explode/substr או כל פונקציה אחרת שעולה לך בראש.
|
24-12-10, 00:27 | # 8 | |
חבר וותיק
|
ציטוט:
תודה על העזרה מעריך את זה.
__________________
מתכנת php אמין ומקצועי. מחירים נוחים! יצירת קשר: 0544378743 |
|
24-12-10, 01:29 | # 9 |
חבר בקהילה
|
קוד:
function get_base_domain($url) { $url = strtolower($url); $debug = 0; $base_domain = ''; // generic tlds (source: http://en.wikipedia.org/wiki/Generic_top-level_domain) $G_TLD = array( 'biz','com','edu','gov','info','int','mil','name','net','org', 'aero','asia','cat','coop','jobs','mobi','museum','pro','tel','travel', 'arpa','root', 'berlin','bzh','cym','gal','geo','kid','kids','lat','mail','nyc','post','sco','web','xxx', 'nato', 'example','invalid','localhost','test', 'bitnet','csnet','ip','local','onion','uucp', 'co' // note: not technically, but used in things like co.uk ); // country tlds (source: http://en.wikipedia.org/wiki/Country_code_top-level_domain) $C_TLD = array( // active 'ac','ad','ae','af','ag','ai','al','am','an','ao','aq','ar','as','at','au','aw','ax','az', 'ba','bb','bd','be','bf','bg','bh','bi','bj','bm','bn','bo','br','bs','bt','bw','by','bz', 'ca','cc','cd','cf','cg','ch','ci','ck','cl','cm','cn','co','cr','cu','cv','cx','cy','cz', 'de','dj','dk','dm','do','dz','ec','ee','eg','er','es','et','eu','fi','fj','fk','fm','fo', 'fr','ga','gd','ge','gf','gg','gh','gi','gl','gm','gn','gp','gq','gr','gs','gt','gu','gw', 'gy','hk','hm','hn','hr','ht','hu','id','ie','il','im','in','io','iq','ir','is','it','je', 'jm','jo','jp','ke','kg','kh','ki','km','kn','kr','kw','ky','kz','la','lb','lc','li','lk', 'lr','ls','lt','lu','lv','ly','ma','mc','md','mg','mh','mk','ml','mm','mn','mo','mp','mq', 'mr','ms','mt','mu','mv','mw','mx','my','mz','na','nc','ne','nf','ng','ni','nl','no','np', 'nr','nu','nz','om','pa','pe','pf','pg','ph','pk','pl','pn','pr','ps','pt','pw','py','qa', 're','ro','ru','rw','sa','sb','sc','sd','se','sg','sh','si','sk','sl','sm','sn','sr','st', 'sv','sy','sz','tc','td','tf','tg','th','tj','tk','tl','tm','tn','to','tr','tt','tv','tw', 'tz','ua','ug','uk','us','uy','uz','va','vc','ve','vg','vi','vn','vu','wf','ws','ye','yu', 'za','zm','zw', // inactive 'eh','kp','me','rs','um','bv','gb','pm','sj','so','yt','su','tp','bu','cs','dd','zr' ); // get domain if ( !$full_domain = get_url_domain($url) ) { return $base_domain; } // now the fun if(substr($full_domain, -1) == ".") { $full_domain = substr($full_domain, 0, -1); } // break up domain, reverse $DOMAIN = explode('.', $full_domain); if ( $debug ) print_r($DOMAIN); $DOMAIN = array_reverse($DOMAIN); if ( $debug ) print_r($DOMAIN); // first check for ip address if ( count($DOMAIN) == 4 && is_numeric($DOMAIN[0]) && is_numeric($DOMAIN[3]) ) { return $full_domain; } // if only 2 domain parts, that must be our domain if ( count($DOMAIN) <= 2 ) return $full_domain; /* finally, with 3+ domain parts: obviously D0 is tld now, if D0 = ctld and D1 = gtld, we might have something like com.uk so, if D0 = ctld && D1 = gtld && D2 != 'www', domain = D2.D1.D0 else if D0 = ctld && D1 = gtld && D2 == 'www', domain = D1.D0 else domain = D1.D0 these rules are simplified below */ if ( in_array($DOMAIN[0], $C_TLD) && in_array($DOMAIN[1], $G_TLD) && $DOMAIN[2] != 'www' ) { $full_domain = $DOMAIN[2] . '.' . $DOMAIN[1] . '.' . $DOMAIN[0]; } else { $full_domain = $DOMAIN[1] . '.' . $DOMAIN[0];; } // did we succeed? return $full_domain; } // get domain from url function get_url_domain($url) { $domain = ''; $_URL = parse_url($url); // sanity check if ( empty($_URL) || empty($_URL['host']) ) { $domain = ''; } else { $domain = $_URL['host']; } return $domain; } |
24-12-10, 11:28 | # 10 |
משתמש - היכל התהילה
|
אני רואה שאתה לא מבין בתיכנות בPHP כלל.
אז הינה הקוד הפשוט. לא תקבל יותר מזה, אני חורג פה ממנהגי לחלוטין. PHP קוד:
__________________
בברכה, חגי בלוך גדות. |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
כלים לאשכול | |
תצורת הצגה | |
|
|