超实用的PHP代码片段

超实用的PHP代码片段

本文由码农网 –
小峰原创翻译,转发请看清文末的转发需求,应接参预我们的付费投稿计划!

本文大家就来享受一下自己访问的一些至上有用的PHP代码片段。一齐来看一看吧!1.成立数量USportageI

 一、查看邮件是或不是已被阅读

  当您在出殡和安葬邮件时,你可能很想驾驭该邮件是还是不是被对方已阅读。这里有段特别有趣的代码片段能够展示对方IP地址记录阅读的其实日期和时间。

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
41
<?
error_reporting(0);
Header("Content-Type: image/jpeg");
 
//Get IP
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
  $ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
  $ip=$_SERVER['REMOTE_ADDR'];
}
 
//Time
$actual_time = time();
$actual_day = date('Y.m.d', $actual_time);
$actual_day_chart = date('d/m/y', $actual_time);
$actual_hour = date('H:i:s', $actual_time);
 
//GET Browser
$browser = $_SERVER['HTTP_USER_AGENT'];
     
//LOG
$myFile = "log.txt";
$fh = fopen($myFile, 'a+');
$stringData = $actual_day . ' ' . $actual_hour . ' ' . $ip . ' ' . $browser . ' ' . "\r\n";
fwrite($fh, $stringData);
fclose($fh);
 
//Generate Image (Es. dimesion is 1x1)
$newimage = ImageCreate(1,1);
$grigio = ImageColorAllocate($newimage,255,255,255);
ImageJPEG($newimage);
ImageDestroy($newimage);
     
?>

  源码

图片 1

在付出网址、app或博客时,代码片段能够真正地为你节省时间。明日,大家就来分享一下本身采摘的一对超级级有用的PHP代码片段。一同来看一看吧!

数据URubiconI在停放图像到HTML / CSS /
JS中以节省HTTP诉求时拾贰分有用,何况能够减掉网址的加载时间。上边包车型大巴函数能够成立基于$file的数目UGL450I。

  二、从网上朋友中领取关键字

  一段伟大的代码片段能够轻易的从网页中提取关键字。

1
2
3
4
5
6
7
8
9
10
$meta = get_meta_tags('http://www.emoticode.net/');
$keywords = $meta['keywords'];
// Split keywords
$keywords = explode(',', $keywords );
// Trim them
$keywords = array_map( 'trim', $keywords );
// Remove empty values
$keywords = array_filter( $keywords );
 
print_r( $keywords );

  源码

用作贰个PHP开垦职员,日常收罗一些代码片段是分外有益的,以备以往接收。那个代码片段能够省去您宝贵的时刻,也可以加强你的工效。

图片 2

function data_uri { $contents=file_get_contents; $base64=base64_encode; echo "data:$mime;base64,$base64";}

  三、查找页面上的持有链接

  使用DOM,你能够轻松从任何页面上抓取链接,代码示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$html = file_get_contents('http://www.example.com');
 
$dom = new DOMDocument();
@$dom->loadHTML($html);
 
// grab all the on the page
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
 
for ($i = 0; $i < $hrefs->length; $i++) {
       $href = $hrefs->item($i);
       $url = $href->getAttribute('href');
       echo $url.'<br />';
}

  源码

1. PHP数组生成 CSV 文件

1.创设数量UCR-VI

数量U大切诺基I在松手图像到HTML / CSS /
JS中以节约HTTP诉求时拾贰分有用,何况能够减小网址的加载时间。上边包车型大巴函数能够创设基于$file的数码UHighlanderI。

function data_uri($file, $mime) {
 $contents=file_get_contents($file);
 $base64=base64_encode($contents);
 echo "data:$mime;base64,$base64";
}

2.合并JavaScript和CSS文件

  四、自动调换UWranglerL,跳转至超链接

  在WordPress中,假让你想自行转变U奥迪Q3L,跳转至超链接页面,你可以运用内置的函数make_clickable(卡塔尔施行此操作。纵然你想依据WordPress之外操作该程序,那么您能够参照他事他说加以调查wp-includes/formatting.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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function _make_url_clickable_cb($matches) {
    $ret = '';
    $url = $matches[2];
  
    if ( empty($url) )
        return $matches[0];
    // removed trailing [.,;:] from URL
    if ( in_array(substr($url, -1), array('.', ',', ';', ':')) === true ) {
        $ret = substr($url, -1);
        $url = substr($url, 0, strlen($url)-1);
    }
    return $matches[1] . "<a href=\"$url\" rel=\"nofollow\">$url</a>" . $ret;
}
  
function _make_web_ftp_clickable_cb($matches) {
    $ret = '';
    $dest = $matches[2];
    $dest = 'http://' . $dest;
  
    if ( empty($dest) )
        return $matches[0];
    // removed trailing [,;:] from URL
    if ( in_array(substr($dest, -1), array('.', ',', ';', ':')) === true ) {
        $ret = substr($dest, -1);
        $dest = substr($dest, 0, strlen($dest)-1);
    }
    return $matches[1] . "<a href=\"$dest\" rel=\"nofollow\">$dest</a>" . $ret;
}
  
function _make_email_clickable_cb($matches) {
    $email = $matches[2] . '@' . $matches[3];
    return $matches[1] . "<a href=\"mailto:$email\">$email</a>";
}
  
function make_clickable($ret) {
    $ret = ' ' . $ret;
    // in testing, using arrays here was found to be faster
    $ret = preg_replace_callback('#([\s>])([\w]+?://[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is', '_make_url_clickable_cb', $ret);
    $ret = preg_replace_callback('#([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is', '_make_web_ftp_clickable_cb', $ret);
    $ret = preg_replace_callback('#([\s>])([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})#i', '_make_email_clickable_cb', $ret);
  
    // this one is not in an array because we need it to run last, for cleanup of accidental links within links
    $ret = preg_replace("#(<a( [^>]+?>|>))<a [^>]+?>([^>]+?)</a></a>#i", "$1$3</a>", $ret);
    $ret = trim($ret);
    return $ret;
}

  源码

这实乃二个很简短的功力,从贰个PHP数组生成二个.csv文件。此函数使用
fputcsv PHP 内置函数生成逗号分隔文件。该函数有3个参数:数据,分隔符和CSV
enclosure,默许是双引号。

2.合并JavaScript和CSS文件

另八个能够尽量减弱HTTP须要和节省页面加载时间的好提出是:合併你的CSS和JS文件。就算本身更提议我们利用专项使用插件(举例minify),但使用PHP来合并文件也非常轻巧。我们来看一下:

function combine_my_files($array_files, $destination_dir, $dest_file_name){
 if(!is_file($destination_dir . $dest_file_name)){ //continue only if file doesn't exist
 $content = "";
 foreach ($array_files as $file){ //loop through array list
 $content .= file_get_contents($file); //read each file
 }
 //You can use some sort of minifier here
 //minify_my_js($content);
 $new_file = fopen($destination_dir . $dest_file_name, "w" ); //open file for writing
 fwrite($new_file , $content); //write to destination
 fclose($new_file);
 return '<script src="'.%20$destination_dir%20.%20$dest_file_name.'"></script>'; //output combined file
 }else{
 //use stored file
 return '<script src="'.%20$destination_dir%20.%20$dest_file_name.'"></script>'; //output combine file
 }
}

并且,用法是这么的:

$files = array(
 'http://example/files/sample_js_file_1.js',
 'http://example/files/sample_js_file_2.js',
 'http://example/files/beautyquote_functions.js',
 'http://example/files/crop.js',
 'http://example/files/jquery.autosize.min.js',
 );
echo combine_my_files($files, 'minified_files/', md5("my_mini_file").".js");

另二个得以尽量降低HTTP央求和节约页面加载时间的好提出是:合并你的CSS和JS文件。即便本人更建议大家使用专项使用插件,但利用PHP来统一文件也特别轻易。大家来看一下:

  五、创设数量UKoleosL

  数据U福睿斯L能够一直嵌入到HTML/CSS/JS中,以节省大批量的 HTTP央浼。
上面包车型客车这段代码可应用$file轻便创立数量UPAJEROL。

1
2
3
4
5
function data_uri($file, $mime) {
  $contents=file_get_contents($file);
  $base64=base64_encode($contents);
  echo "data:$mime;base64,$base64";
}

  源码

function generateCsv($data, $delimiter = ',', $enclosure = '"') { $handle = fopen('php://temp', 'r+'); foreach ($data as $line) { fputcsv($handle, $line, $delimiter, $enclosure); } rewind($handle); while (!feof($handle)) { $contents .= fread($handle, 8192); } fclose($handle); return $contents;}

3.翻看你的电子邮件是还是不是已读

当发送电子邮件时,你会期望知道你的邮件是还是不是已读。这里有三个那么些有趣的代码片段,它能够记录阅读你邮件的IP地址,以致实际的日子和时间。

<?
error_reporting(0);
Header("Content-Type: image/jpeg");
//Get IP
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
  $ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
  $ip=$_SERVER['REMOTE_ADDR'];
}
//Time
$actual_time = time();
$actual_day = date('Y.m.d', $actual_time);
$actual_day_chart = date('d/m/y', $actual_time);
$actual_hour = date('H:i:s', $actual_time);
//GET Browser
$browser = $_SERVER['HTTP_USER_AGENT'];
//LOG
$myFile = "log.txt";
$fh = fopen($myFile, 'a+');
$stringData = $actual_day . ' ' . $actual_hour . ' ' . $ip . ' ' . $browser . ' ' . "\r\n";
fwrite($fh, $stringData);
fclose($fh);
//Generate Image (Es. dimesion is 1x1)
$newimage = ImageCreate(1,1);
$grigio = ImageColorAllocate($newimage,255,255,255);
ImageJPEG($newimage);
ImageDestroy($newimage);
?>
function combine_my_files($array_files, $destination_dir, $dest_file_name){ if(!is_file($destination_dir . $dest_file_name)){ //continue only if file doesn't exist $content = ""; foreach ($array_files as $file){ //loop through array list $content .= file_get_contents; //read each file } //You can use some sort of minifier here //minify_my_js; $new_file = fopen($destination_dir . $dest_file_name, "w" ); //open file for writing fwrite; //write to destination fclose; return ''; //output combined file }else{ //use stored file return ''; //output combine file }}

$files = array( 'http://example/files/sample_js_file_1.js', 'http://example/files/sample_js_file_2.js', 'http://example/files/beautyquote_functions.js', 'http://example/files/crop.js', 'http://example/files/jquery.autosize.min.js', );echo combine_my_files($files, 'minified_files/', md5.".js");

  六、从服务器上下载&保存一个中间隔图片 

  当您在搭建网址时,从远程服务器下载某张图纸并且将其保存在友好的服务器上,这一操作会日常用到。代码如下:

1
2
$image = file_get_contents('http://www.url.com/image.jpg');
file_put_contents('image.jpg', $image); //Where to save the image

  源码

2. 消除对数据库的恶意代码输入

4.从网页提取关键词

正如这小题目所说的那么:那么些代码片段能令你轻巧地从网页中领到元根本词。

$meta = get_meta_tags('http://www.emoticode.net/');
$keywords = $meta['keywords'];
// Split keywords
$keywords = explode(',', $keywords );
// Trim them
$keywords = array_map( 'trim', $keywords );
// Remove empty values
$keywords = array_filter( $keywords );
print_r( $keywords );

3.查看你的电子邮件是还是不是已读

  七、移除Remove Microsoft Word HTML Tag

  当您利用Microsoft
Word会成立比非常多Tag,举个例子font,span,style,class等。这么些标签对于Word自己来说是老大管用的,可是当您从Word粘贴至网页时,你会发觉大多无效的Tag。因而,上面包车型大巴这段代码可补助您剔除全体无用的Word
HTML Tag。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function cleanHTML($html) {
/// <summary>
/// Removes all FONT and SPAN tags, and all Class and Style attributes.
/// Designed to get rid of non-standard Microsoft Word HTML tags.
/// </summary>
// start by completely removing all unwanted tags
 
$html = ereg_replace("<(/)?(font|span|del|ins)[^>]*>","",$html);
 
// then run another pass over the html (twice), removing unwanted attributes
 
$html = ereg_replace("<([^>]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","<\1>",$html);
$html = ereg_replace("<([^>]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","<\1>",$html);
 
return $html
}

  源码

这是三个卓有效能的PHP函数,可清理全体的输入数据,收缩代码注入的可能率。

5.查找页面上的富有链接

使用DOM,你能够轻易地抓取来网页上的装有链接。这里有八个干活示范:

$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
@$dom->loadHTML($html);
// grab all the on the page
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
 $href = $hrefs->item($i);
 $url = $href->getAttribute('href');
 echo $url.'<br />';
}

当发送电子邮件时,你会希望驾驭你的邮件是或不是已读。这里有三个那多少个有趣的代码片段,它可以记录阅读你邮件的IP地址,以至实际的日子和岁月。

  八、检查评定浏览器语言

  如若你的网址上有多样语言,那么能够选取这段代码作为默许的语言来检查实验浏览器语言。该段代码将回来浏览器顾客端接受的起来语言。

1
2
3
4
5
6
7
8
9
10
11
12
13
function get_client_language($availableLanguages, $default='en'){
    if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
        $langs=explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
 
        foreach ($langs as $value){
            $choice=substr($value,0,2);
            if(in_array($choice, $availableLanguages)){
                return $choice;
            }
        }
    }
    return $default;
}

  源码

function sanitize_input_data($input_data) {$input_data = trim(htmlentities(strip_tags($input_data,“,”)));if (get_magic_quotes_gpc())$input_data = stripslashes($input_data);$input_data = mysql_real_escape_string($input_data);return $input_data;}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图