这一天终于来了,今后你不只仅“不该该”使用mysql_函数。PHP 7 已经把它们从核心中所有移除了,也就是说你须要迁移到好得多的mysqli_函数,或者更灵活的 PDO 实现。php
这一条可能易于理解,可是会变得愈来愈重要,由于 PHP 7 的速度提高可能会隐藏你的一些问题。不要仅仅知足于你的站点速度,由于迁移到 PHP 7 才让它变快。css
为了理解速度有多重要,以及如何把事情作得更好,请看一看咱们的文章速度优化入门指南。html
做为一名开发者,你应该老是确保按需加载脚本,尽量链接它们,编写高效的数据库查询,尽量使用缓存,以及其它。python
你能够看一看,当一个文件以 PHP 代码结尾时,WordPress 多数核心代码都把末尾的 PHP 标签去掉了。实际上,Zend 框架特别禁止了它。PHP 并不须要文件末尾的闭合标签,而且咱们能够经过去掉它来保证不会在后面添加任何的空白字符。mysql
我我的不喜欢引用传递。我知道有时候它很实用,可是其它状况下它使代码变得难懂,而且更难预测结果。laravel
听说一些人认为它使代码运行更快,可是根据一些 PHP 高级程序员所说,这并不正确。git
说明引用为何很差的一个例子是,PHP 内建了shuffle()和sort()。它们修改原始数组,而不是返回处理后的数组,这很不合逻辑。程序员
在循环中执行查询很是浪费。它给你的系统施加没必要要的压力,而且可能可以在循环外部更快得到相同结果。当我遇到须要这样的状况时,我一般会使用两个分离的查询来解决问题,我会使用它们来构建数据数组。以后我会遍历数组,并不须要在这个过程当中执行查询。github
因为 WordPress 适用于这里,它可能有一些例外。虽然get_post_meta() 会从数据库获取大量数据,若是你正在遍历某个特殊博文的元数据你能够在循环中使用它。这是由于当你第一次调用它的时候,WordPress实际上会获取全部元数据并缓存它们。后续的调用使用这些缓存数据,没有数据库的调用。web
弄懂这些的最佳方式是阅读函数文档,以及使用相似 Query Monitor 的工具。
固然,这个更像 MySQL 的问题,可是咱们习惯在 PHP 中编写 SQL 代码,因此都差很少。不管如何,若是能够避免的话,不要在 SQL 查询里使用通配符,尤为是数据库有不少列的时候。
你应该明确指定须要哪些行,而且仅仅获取它们。这有助于减小所用资源,保护数据,以及让事情变得尽量清晰。
对于 SQL,你须要了解全部可用的函数,而且尽量测试其速度。在计算均值、求和或计算相似数值时,要使用 SQL 函数而不是 PHP 函数。若是你不肯定某个查询的速度,测试它而且尝试一些其它的编译 -- 以后使用最好的那个。
信任用户输入是不明智的。始终校验、过滤、转义、检查并留好退路。用户数据存在三个问题:咱们开发者并无考虑每种可能性,它一般不正确,以及它多是蓄意破坏。
通过周密考虑的系统能够防御这些威胁。要确保使用相似filter_var()的内建函数检查适当的值,以及在处理数据库时转义(或预编译)。
WordPress 拥有一些函数来解决问题。详见文章校验、转义和过滤用户数据。
你的目标应该是编写优雅的代码,来更清晰地表达你的意图。你可能可以经过将任何东西缩短为一个单词的变量,使用多层的三元逻辑,以及其它手段,从每一个页面中优化 0.01 秒。但这只会给你和你周围的人产生大麻烦。
合理命名变量,为代码编写文档,优先选择清晰而不是简洁。甚至还能够更好,使用标准的面向对象代码,它自己或多或少就是文档,不须要一大堆内联数值。
PHP 到如今为止有很长时间了,网站被造出来的时间更长。极可能不管你须要造出什么,一些人以前早就造出来了。不要惧怕向他人寻求支持,Github是你的好朋友,Composer也是,Packagist也是。
从日志工具到调色工具,从性能分析器到单元测试框架,从 Mailchimp API 到 Twitter Bootstrap,每一个东西均可以经过按下按键(或者敲下命令)来获取,使用它们吧!
若是你是个 PHP 程序员,如今有个好机会去至少了解 HTML、CSS、JavaScript 和 MySQL。当你可以更好地处理这些语言时,就是从新学习 JavaScript 的时机了。JavaScript 并非 jQuery,你应该合理地学习 JavaScript 来更高效地使用它。
我也打算向你推荐学习面向对象的 PHP,它能够节省时间,而且在代码规模更大时会变得更好。对于相似 C# 和 Java 的语言,在你了解 OOP 以后,它们也更易于理解。
经过了解包管理器、构建脚本、CoffeeScript、LESS、SASS、YAML 、脚本引擎和其它强大的工具来扩展你的知识面。我强烈向你推荐看一看其它框架,尤为是 Laravel。
当你使用它们出色完成任务时,学习 Ruby、RoR、Android、iPhone 和 Windows Phone 应用开发如何?你可能会认为这毫无心义,由于它们在你的温馨区和工做所需范围以外,可是这就是它们的意义。每种语言都有一些要学习的实用的东西,以及从没碰到的新知识。全部 PHP 顶级开发者都懂得不少其它编程语言,这并不是偶然。
------------------
PHP加密和解密函数能够用来加密一些有用的字符串存放在数据库里,而且经过可逆解密字符串,该函数使用了base64和MD5加密和解密。
function encryptDecrypt($key, $string, $decrypt){ if($decrypt){ $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "12"); return $decrypted; }else{ $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key)))); return $encrypted; } }
使用方法以下:
//如下是将字符串“Helloweba欢迎您”分别加密和解密 //加密: echo encryptDecrypt('password', 'Helloweba欢迎您',0); //解密: echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);
当咱们须要生成一个随机名字,临时密码等字符串时能够用到下面的函数:
function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, strlen($characters) - 1)]; } return $randomString; }
使用方法以下:
echo generateRandomString(20);
如下函数能够快速获取文件的扩展名即后缀。
function getExtension($filename){ $myext = substr($filename, strrpos($filename, '.')); return str_replace('.','',$myext); }
使用方法以下:
$filename = '个人文档.doc'; echo getExtension($filename);
如下使用的函数能够获取文件的大小,而且转换成便于阅读的KB,MB等格式。
function formatSize($size) { $sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); if ($size == 0) { return('n/a'); } else { return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]); } }
使用方法以下:
$thefile = filesize('test_file.mp3'); echo formatSize($thefile);
有时咱们须要将字符串、模板标签替换成指定的内容,能够用到下面的函数:
function stringParser($string,$replacer){ $result = str_replace(array_keys($replacer), array_values($replacer),$string); return $result; }
使用方法以下:
$string = 'The {b}anchor text{/b} is the {b}actual word{/b} or words used {br}to describe the link {br}itself'; $replace_array = array('{b}' => '<b>','{/b}' => '</b>','{br}' => '<br />'); echo stringParser($string,$replace_array);
若是你想列出目录下的全部文件,使用如下代码便可:
function listDirFiles($DirPath){ if($dir = opendir($DirPath)){ while(($file = readdir($dir))!== false){ if(!is_dir($DirPath.$file)) { echo "filename: $file<br />"; } } } }
使用方法以下:
listDirFiles('home/some_folder/');
如下函数能够获取当前页面的URL,无论是http仍是https。
function curPageURL() { $pageURL = 'http'; if (!empty($_SERVER['HTTPS'])) {$pageURL .= "s";} $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; }
使用方法以下:
echo curPageURL();
有时咱们不想让浏览器直接打开文件,如PDF文件,而是要直接下载文件,那么如下函数能够强制下载文件,函数中使用了application/octet-stream头类型。
function download($filename){ if ((isset($filename))&&(file_exists($filename))){ header("Content-length: ".filesize($filename)); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $filename . '"'); readfile("$filename"); } else { echo "Looks like file does not exist!"; } }
使用方法以下:
download('/down/test_45f73e852.zip');
咱们常常会遇到须要截取字符串(含中文汉字)长度的状况,好比标题显示不能超过多少字符,超出的长度用…表示,如下函数能够知足你的需求。
/* Utf-八、gb2312都支持的汉字截取函数 cut_str(字符串, 截取长度, 开始长度, 编码); 编码默认为 utf-8 开始长度默认为 0 */ function cutStr($string, $sublen, $start = 0, $code = 'UTF-8'){ if($code == 'UTF-8'){ $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/"; preg_match_all($pa, $string, $t_string); if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."..."; return join('', array_slice($t_string[0], $start, $sublen)); }else{ $start = $start*2; $sublen = $sublen*2; $strlen = strlen($string); $tmpstr = ''; for($i=0; $i<$strlen; $i++){ if($i>=$start && $i<($start+$sublen)){ if(ord(substr($string, $i, 1))>129){ $tmpstr.= substr($string, $i, 2); }else{ $tmpstr.= substr($string, $i, 1); } } if(ord(substr($string, $i, 1))>129) $i++; } if(strlen($tmpstr)<$strlen ) $tmpstr.= "..."; return $tmpstr; } }
使用方法以下:
$str = "jQuery插件实现的加载图片和页面效果"; echo cutStr($str,16);
咱们常常要用数据库记录用户的IP,如下代码能够获取客户端真实的IP:
//获取用户真实IP function getIp() { if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); else if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "unknown"; return ($ip); }
使用方法以下:
echo getIp();
咱们在查询数据库时,出于安全考虑,须要过滤一些非法字符防止SQL恶意注入,请看一下函数:
function injCheck($sql_str) { $check = preg_match('/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/', $sql_str); if ($check) { echo '非法字符!!'; exit; } else { return $sql_str; } }
使用方法以下:
echo injCheck('1 or 1=1');
咱们在进行表单操做时,有时为了友好须要提示用户操做结果,并跳转到相关页面,请看如下函数:
function message($msgTitle,$message,$jumpUrl){ $str = '<!DOCTYPE HTML>'; $str .= '<html>'; $str .= '<head>'; $str .= '<meta charset="utf-8">'; $str .= '<title>页面提示</title>'; $str .= '<style type="text/css">'; $str .= '*{margin:0; padding:0}a{color:#369; text-decoration:none;}a:hover{text-decoration:underline}body{height:100%; font:12px/18px Tahoma, Arial, sans-serif; color:#424242; background:#fff}.message{width:450px; height:120px; margin:16% auto; border:1px solid #99b1c4; background:#ecf7fb}.message h3{height:28px; line-height:28px; background:#2c91c6; text-align:center; color:#fff; font-size:14px}.msg_txt{padding:10px; margin-top:8px}.msg_txt h4{line-height:26px; font-size:14px}.msg_txt h4.red{color:#f30}.msg_txt p{line-height:22px}'; $str .= '</style>'; $str .= '</head>'; $str .= '<body>'; $str .= '<div>'; $str .= '<h3>'.$msgTitle.'</h3>'; $str .= '<div>'; $str .= '<h4>'.$message.'</h4>'; $str .= '<p>系统将在 <span style="color:blue;font-weight:bold">3</span> 秒后自动跳转,若是不想等待,直接点击 <a href="{$jumpUrl}">这里</a> 跳转</p>'; $str .= "<script>setTimeout('location.replace(\'".$jumpUrl."\')',2000)</script>"; $str .= '</div>'; $str .= '</div>'; $str .= '</body>'; $str .= '</html>'; echo $str; }
使用方法以下:
message('操做提示','操做成功!','http://www.helloweba.com/');
咱们在处理时间时,须要计算当前时间距离某个时间点的时长,如计算客户端运行时长,一般用hh:mm:ss表示。
function changeTimeType($seconds) { if ($seconds > 3600) { $hours = intval($seconds / 3600); $minutes = $seconds % 3600; $time = $hours . ":" . gmstrftime('%M:%S', $minutes); } else { $time = gmstrftime('%H:%M:%S', $seconds); } return $time; }
----------------------
尽管PHP常常被人诟病,被人贬低,被人当玩笑开,事实证实,PHP是全世界网站开发中使用率最高的编程语言。PHP最大的缺点是太简单,语法不严谨,框架体系很弱,但这也是它最大的优势,一个有点编程背景的普通人,只须要学习PHP半天时间,就能够上手开始开发web应用了。
网上有人总结几种编程语言的特色,我以为也挺有道理的:
PHP 就是: Quick and Dirty
Java 就是: Beauty and Slowly
Ruby 就是: Quick and Beauty
python 就是: Quick and Simple
在PHP的流行普及中,网上总结出了不少实用的PHP代码片断,这些代码片断在当你遇到相似的问题时,粘贴过去就可使用,很是的高效,很是的省时省力。将这些程序员前辈总结出的优秀代码放到本身的知识库中,是一个善于学习的程序员的好习惯。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
function
is_spam(
$text
,
$file
,
$split
=
':'
,
$regex
= false){
$handle
=
fopen
(
$file
,
'rb'
);
$contents
=
fread
(
$handle
,
filesize
(
$file
));
fclose(
$handle
);
$lines
=
explode
(
"n"
,
$contents
);
$arr
=
array
();
foreach
(
$lines
as
$line
){
list(
$word
,
$count
) =
explode
(
$split
,
$line
);
if
(
$regex
)
$arr
[
$word
] =
$count
;
else
$arr
[preg_quote(
$word
)] =
$count
;
}
preg_match_all(
"~"
.implode(
'|'
,
array_keys
(
$arr
)).
"~"
,
$text
,
$matches
);
$temp
=
array
();
foreach
(
$matches
[0]
as
$match
){
if
(!in_array(
$match
,
$temp
)){
$temp
[
$match
] =
$temp
[
$match
] + 1;
if
(
$temp
[
$match
] >=
$arr
[
$word
])
return
true;
}
}
return
false;
}
$file
=
'spam.txt'
;
$str
=
'This string has cat, dog word'
;
if
(is_spam(
$str
,
$file
))
echo
'this is spam'
;
else
echo
'this is not spam'
;
|
ab:3 dog:3 cat:2 monkey:2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
function
randomColor() {
$str
=
'#'
;
for
(
$i
= 0 ;
$i
< 6 ;
$i
++) {
$randNum
= rand(0 , 15);
switch
(
$randNum
) {
case
10:
$randNum
=
'A'
;
break
;
case
11:
$randNum
=
'B'
;
break
;
case
12:
$randNum
=
'C'
;
break
;
case
13:
$randNum
=
'D'
;
break
;
case
14:
$randNum
=
'E'
;
break
;
case
15:
$randNum
=
'F'
;
break
;
}
$str
.=
$randNum
;
}
return
$str
;
}
$color
= randomColor();
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
set_time_limit(0);
// Supports all file types
// URL Here:
$pi
=
pathinfo
(
$url
);
$ext
=
$pi
[
'extension'
];
$name
=
$pi
[
'filename'
];
// create a new cURL resource
$ch
= curl_init();
// set URL and other appropriate options
curl_setopt(
$ch
, CURLOPT_URL,
$url
);
curl_setopt(
$ch
, CURLOPT_HEADER, false);
curl_setopt(
$ch
, CURLOPT_BINARYTRANSFER, true);
curl_setopt(
$ch
, CURLOPT_AUTOREFERER, true);
curl_setopt(
$ch
, CURLOPT_FOLLOWLOCATION, true);
curl_setopt(
$ch
, CURLOPT_RETURNTRANSFER, true);
// grab URL and pass it to the browser
$opt
= curl_exec(
$ch
);
// close cURL resource, and free up system resources
curl_close(
$ch
);
$saveFile
=
$name
.
'.'
.
$ext
;
if
(preg_match(
"/[^0-9a-z._-]/i"
,
$saveFile
))
$saveFile
= md5(microtime(true)).
'.'
.
$ext
;
$handle
=
fopen
(
$saveFile
,
'wb'
);
fwrite(
$handle
,
$opt
);
fclose(
$handle
);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
function
page_rank(
$page
,
$type
=
'alexa'
){
switch
(
$type
){
case
'alexa'
:
$handle
=
fopen
(
$url
.
$page
,
'r'
);
break
;
case
'google'
:
break
;
}
$content
= stream_get_contents(
$handle
);
fclose(
$handle
);
$content
= preg_replace(
"~(n|t|ss+)~"
,
''
,
$content
);
switch
(
$type
){
case
'alexa'
:
if
(preg_match(
'~<div class="data (down|up)"><img.+?>(.+?) </div>~im'
,
$content
,
$matches
)){
return
$matches
[2];
}
else
{
return
FALSE;
}
break
;
case
'google'
:
$rank
=
explode
(
':'
,
$content
);
if
(
$rank
[2] !=
''
)
return
$rank
[2];
else
return
FALSE;
break
;
default
:
return
FALSE;
break
;
}
}
// Alexa Page Rank:
echo
'Alexa Rank: '
.page_rank(
'techug.com'
);
echo
'
';
// Google Page Rank
echo
'Google Rank: '
.page_rank(
'techug.com'
,
'google'
);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
$filename
=
$_GET
[
'file'
];
//Get the fileid from the URL
// Query the file ID
$query
= sprintf(
"SELECT * FROM tableName WHERE id = '%s'"
,mysql_real_escape_string(
$filename
));
$sql
= mysql_query(
$query
);
if
(mysql_num_rows(
$sql
) > 0){
$row
= mysql_fetch_array(
$sql
);
// Set some headers
header(
"Pragma: public"
);
header(
"Expires: 0"
);
header(
"Cache-Control: must-revalidate, post-check=0, pre-check=0"
);
header(
"Content-Type: application/force-download"
);
header(
"Content-Type: application/octet-stream"
);
header(
"Content-Type: application/download"
);
header(
"Content-Disposition: attachment; filename="
.
basename
(
$row
[
'FileName'
]).
";"
);
header(
"Content-Transfer-Encoding: binary"
);
header(
"Content-Length: "
.
filesize
(
$row
[
'FileName'
]));
@readfile(
$row
[
'FileName'
]);
exit
(0);
}
else
{
header(
"Location: /"
);
exit
;
}
|
1
2
|
echo
'<img src="'
.
$gravatar_link
.
'" />'
;
|
1
2
3
4
5
6
7
|
$ch
= curl_init();
curl_setopt(
$ch
,CURLOPT_URL,
'https://feedburner.google.com/api/awareness/1.0/GetFeedData?id=7qkrmib4r9rscbplq5qgadiiq4'
);
curl_setopt(
$ch
,CURLOPT_RETURNTRANSFER,1);
curl_setopt(
$ch
,CURLOPT_CONNECTTIMEOUT,2);
$content
= curl_exec(
$ch
);
$subscribers
= get_match(
'/circulation="(.*)"/isU'
,
$content
);
curl_close(
$ch
);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
function
ago(
$time
)
{
$periods
=
array
(
"second"
,
"minute"
,
"hour"
,
"day"
,
"week"
,
"month"
,
"year"
,
"decade"
);
$lengths
=
array
(
"60"
,
"60"
,
"24"
,
"7"
,
"4.35"
,
"12"
,
"10"
);
$now
= time();
$difference
=
$now
-
$time
;
$tense
=
"ago"
;
for
(
$j
= 0;
$difference
>=
$lengths
[
$j
] &&
$j
<
count
(
$lengths
)-1;
$j
++) {
$difference
/=
$lengths
[
$j
];
}
$difference
=
round
(
$difference
);
if
(
$difference
!= 1) {
$periods
[
$j
].=
"s"
;
}
return
"$difference $periods[$j] 'ago' "
;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
$filename
=
"test.jpg"
;
list(
$w
,
$h
,
$type
,
$attr
) =
getimagesize
(
$filename
);
$src_im
= imagecreatefromjpeg(
$filename
);
$src_x
=
'0'
;
// begin x
$src_y
=
'0'
;
// begin y
$src_w
=
'100'
;
// width
$src_h
=
'100'
;
// height
$dst_x
=
'0'
;
// destination x
$dst_y
=
'0'
;
// destination y
$dst_im
= imagecreatetruecolor(
$src_w
,
$src_h
);
$white
= imagecolorallocate(
$dst_im
, 255, 255, 255);
imagefill(
$dst_im
, 0, 0,
$white
);
imagecopy(
$dst_im
,
$src_im
,
$dst_x
,
$dst_y
,
$src_x
,
$src_y
,
$src_w
,
$src_h
);
header(
"Content-type: image/png"
);
imagepng(
$dst_im
);
imagedestroy(
$dst_im
);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
function
Visit(
$url
){
$agent
=
"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"
;
$ch
=curl_init();
curl_setopt (
$ch
, CURLOPT_URL,
$url
);
curl_setopt(
$ch
, CURLOPT_USERAGENT,
$agent
);
curl_setopt (
$ch
, CURLOPT_RETURNTRANSFER, 1);
curl_setopt (
$ch
,CURLOPT_VERBOSE,false);
curl_setopt(
$ch
, CURLOPT_TIMEOUT, 5);
curl_setopt(
$ch
,CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt(
$ch
,CURLOPT_SSLVERSION,3);
curl_setopt(
$ch
,CURLOPT_SSL_VERIFYHOST, FALSE);
$page
=curl_exec(
$ch
);
//echo curl_error($ch);
$httpcode
= curl_getinfo(
$ch
, CURLINFO_HTTP_CODE);
curl_close(
$ch
);
if
(
$httpcode
>=200 &&
$httpcode
<300)
return
true;
else
return
false;
}
echo
"Website OK"
.
"n"
;
else
echo
"Website DOWN"
;
|