31. 删除文件夹内容
[代码]php代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function Delete ( $path )
{
if ( is_dir ( $path ) === true)
{
$files = array_diff (scandir( $path ), array ('.', '..'));
foreach ( $files as $file )
{
Delete ( realpath ( $path ) . '/' . $file );
}
return rmdir ( $path );
}
else if ( is_file ( $path ) === true)
{
return unlink( $path );
}
return false;
}
|
Salin selepas log masuk
语法:
$path = "images/";
Delete($path); // This will delete images folder along with its contents.
?>
32. 搜索和高亮字符串中的关键字
[代码]php代码:
1 2 3 4 5 6 7 8 9 10 11 | function highlighter_text( $text , $words )
{
$split_words = explode ( " " , $words );
foreach ( $split_words as $word )
{
$color = "#4285F4" ;
$text = preg_replace( "|($word)|Ui" ,
"<b>$1</b>" , $text );
}
return $text ;
}
|
Salin selepas log masuk
语法:
$string = "I like chocolates and I like apples";
$words = "apple";
echo highlighter_text($string ,$words);
?>
33. 写入文件
$filename = 'blog.csv';
$fp = fopen($filename, 'w');
$output = " Hello ";
$output .= " World! ";
$output .= "\r\n";
fputs($fp, $output);
fclose($fp);
?>
34. 根据 URL 下载图片
[代码]php代码:
1 2 3 4 5 6 7 8 9 10 11 12 | function imagefromURL( $image , $rename )
{
$ch = curl_init( $image );
curl_setopt( $ch , CURLOPT_HEADER, 0);
curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch , CURLOPT_BINARYTRANSFER,1);
$rawdata =curl_exec ( $ch );
curl_close ( $ch );
$fp = fopen ( "$rename" ,'w');
fwrite( $fp , $rawdata );
fclose( $fp );
}
|
Salin selepas log masuk
语法:
$url = "http://koonk.com/images/logo.png";
$rename = "koonk.png";
imagefromURL($url,$rename);
?>
35. 检测 URL 是否有效
[代码]php代码:
1 2 3 4 5 6 7 8 | function isvalidURL( $url )
{
$check = 0;
if (filter_var( $url , FILTER_VALIDATE_URL) !== false) {
$check = 1;
}
return $check ;
}
|
Salin selepas log masuk
语法:
$url = "http://koonk.com";
$check = checkvalidURL($url);
echo $check; //if returns 1 then URL is valid.
?>
36. 生成二维码
[代码]php代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | function qr_code( $data , $type = "TXT" , $size ='150', $ec ='L', $margin ='0')
{
$types = array ( "URL" =--> "http://" , "TEL" => "TEL:" , "TXT" => "" , "EMAIL" => "MAILTO:" );
if (!in_array( $type , array ( "URL" , "TEL" , "TXT" , "EMAIL" )))
{
$type = "TXT" ;
}
if (!preg_match('/^'. $types [ $type ].'/', $data ))
{
$data = str_replace ( "\\" , "" , $types [ $type ]). $data ;
}
$ch = curl_init();
$data = urlencode( $data );
curl_setopt( $ch , CURLOPT_URL, 'http:
curl_setopt( $ch , CURLOPT_POST, true);
curl_setopt( $ch , CURLOPT_POSTFIELDS, 'chs='. $size .'x'. $size .'&cht=qr&chld='. $ec .'|'. $margin .'&chl='. $data );
curl_setopt( $ch , CURLOPT_RETURNTRANSFER, true);
curl_setopt( $ch , CURLOPT_HEADER, false);
curl_setopt( $ch , CURLOPT_TIMEOUT, 30);
$response = curl_exec( $ch );
curl_close( $ch );
return $response ;
}
|
Salin selepas log masuk
语法:
header("Content-type: image/png");
echo qr_code("http://koonk.com", "URL");
?>
37. 计算两个地图坐标之间的距离
[代码]php代码:
1 2 3 4 5 6 7 8 9 10 11 12 | function getDistanceBetweenPointsNew( $latitude1 , $longitude1 , $latitude2 , $longitude2 ) {
$theta = $longitude1 - $longitude2 ;
$miles = (sin( deg2rad ( $latitude1 )) * sin( deg2rad ( $latitude2 ))) + ( cos ( deg2rad ( $latitude1 )) * cos ( deg2rad ( $latitude2 )) * cos ( deg2rad ( $theta )));
$miles = acos ( $miles );
$miles = rad2deg( $miles );
$miles = $miles * 60 * 1.1515;
$feet = $miles * 5280;
$yards = $feet / 3;
$kilometers = $miles * 1.609344;
$meters = $kilometers * 1000;
return compact('miles','feet','yards','kilometers','meters');
}
|
Salin selepas log masuk
语法:
$point1 = array('lat' => 40.770623, 'long' => -73.964367);
$point2 = array('lat' => 40.758224, 'long' => -73.917404);
$distance = getDistanceBetweenPointsNew($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
foreach ($distance as $unit => $value) {
echo $unit.': '.number_format($value,4).'
';
}
?>
38. 获取一个特定话题标签的所有 Tweets
[代码]php代码:
1 2 3 4 5 6 7 8 9 10 | function getTweets( $hash_tag ) {
$url = 'http:
echo "<p>Connecting to <strong>$url</strong> ...</p>" ;
$ch = curl_init( $url );
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER, TRUE);
$xml = curl_exec ( $ch );
curl_close ( $ch );
|
";
$affected = 0;
$twelement = new
SimpleXMLElement($xml);
foreach ($twelement->entry as $entry) {
$text = trim($entry->title);
$author = trim($entry->author->name);
$time = strtotime($entry->published);
$id = $entry->id;
echo "
Tweet from ".$author.": ".$text." Posted ".date('n/j/y g:i a',$time)."
";
}
return true ;
}
Salin selepas log masuk
39. 添加 th,st,nd 或者 rd 作为数字的后缀
Friday the 13th
[代码]php代码:
1 2 3 4 5 6 7 | function ordinal( $cdnl ){
$test_c = abs ( $cdnl ) % 10;
$ext = (( abs ( $cdnl ) %100 < 21 && abs ( $cdnl ) %100 > 4) ? 'th'
: (( $test_c < 4) ? ( $test_c < 3) ? ( $test_c < 2) ? ( $test_c < 1)
? 'th' : 'st' : 'nd' : 'rd' : 'th'));
return $cdnl . $ext ;
}
|
Salin selepas log masuk
语法:
$number = 10;
echo ordinal($number); //output is 10th
?>
40. 限制文件下载的速度
[代码]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 | <!--?php
$local_file = 'test-file.zip';
$download_file = 'your-download-name.zip';
$download_rate = 20.5;
if ( file_exists ( $local_file ) && is_file ( $local_file )) {
header('Cache-control: private ');
header('Content-Type: application/octet-stream');
header('Content-Length: '. filesize ( $local_file ));
header('Content-Disposition: filename='. $download_file );
flush ();
$file = fopen ( $local_file , "r" );
while (! feof ( $file )) {
print fread ( $file , round ( $download_rate * 1024));
flush ();
sleep(1);
}
fclose( $file );}
else {
die ('Error: The file '. $local_file .' does not exist!');
}
?>
|
Salin selepas log masuk
41. 把文本转换成图片
header("Content-type: image/png");
$string = $_GET['text'];
$im = imagecreatefrompng("images/button.png");
$color = imagecolorallocate($im, 255, 255, 255);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
$py = 9;
$fontSize = 1;
imagestring($im, fontSize, $px, $py, $string, $color);
imagepng($im);
imagedestroy($im);
?>
42. 获取远程文件的大小
[代码]php代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function remote_filesize( $url , $user = "" , $pw = "" )
{
ob_start();
$ch = curl_init( $url );
curl_setopt( $ch , CURLOPT_HEADER, 1);
curl_setopt( $ch , CURLOPT_NOBODY, 1);
if (! empty ( $user ) && ! empty ( $pw ))
{
$headers = array ('Authorization: Basic ' . <a href= "http://www.php-z.com/" target= "_blank" class = "relatedlink" >Base</a>64_encode( "$user:$pw" ));
curl_setopt( $ch , CURLOPT_HTTPHEADER, $headers );
}
$ok = curl_exec( $ch );
curl_close( $ch );
$head = ob_get_contents();
ob_end_clean();
$regex = '/Content-Length:\s([0-9].+?)\s/';
$count = preg_match( $regex , $head , $matches );
return isset( $matches [1]) ? $matches [1] : "unknown" ;
}
|
Salin selepas log masuk
语法:
$file = "http://koonk.com/images/logo.png";
$size = remote_filesize($url);
echo $size;
?>
43. 使用 imagebrick 进行 pdf 到图像的转换
$pdf_file = './pdf/demo.pdf';
$save_to = './jpg/demo.jpg'; //make sure that Apache has permissions to write in this folder! (common problem)
//execute ImageMagick command 'convert' and convert PDF to JPG with applied settings
exec('convert "'.$pdf_file.'" -colorspace RGB -resize 800 "'.$save_to.'"', $output, $return_var);
if($return_var == 0) { //if exec successfuly converted pdf to jpg
print "Conversion OK";
}
else print "Conversion failed.
".$output;
?>
44. 使用 tinyurl 生成短网址
[代码]php代码:
1 2 3 4 5 6 7 8 9 10 11 | function get_tiny_url( $url )
{
$ch = curl_init();
$timeout = 5;
curl_setopt( $ch ,CURLOPT_URL,'http:
curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,1);
curl_setopt( $ch ,CURLOPT_CONNECTTIMEOUT, $timeout );
$data = curl_exec( $ch );
curl_close( $ch );
return $data ;
}
|
Salin selepas log masuk
语法:
$url = "http://blog.koonk.com/2015/07/Hello-World";
$tinyurl = get_tiny_url($url);
echo $tinyurl;
?>
45. youtube 下载链接生成器
使用下面的 PHP 片段可以让你的用户下载 Youtube 视频
[代码]php代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function str_between( $string , $start , $end )
{
$string = " " . $string ; $ini = strpos ( $string , $start ); if ( $ini == 0) return "" ; $ini += strlen ( $start ); $len = strpos ( $string , $end , $ini ) - $ini ; return substr ( $string , $ini , $len ); }
function get_youtube_download_link(){
$youtube_link = $_GET ['youtube'];
$youtube_page = file_get_contents ( $youtube_link );
$v_id = str_between( $youtube_page , "&video_id=" , "&" );
$t_id = str_between( $youtube_page , "&t=" , "&" );
$flv_link = "http://www.youtube.com/get_video?video_id=$v_id&t=$t_id" ;
$hq_flv_link = "http://www.youtube.com/get_video?video_id=$v_id&t=$t_id&fmt=6" ;
$mp4_link = "http://www.youtube.com/get_video?video_id=$v_id&t=$t_id&fmt=18" ;
$threegp_link = "http://www.youtube.com/get_video?video_id=$v_id&t=$t_id&fmt=17" ;
echo "\t\tDownload (right-click > save as):\n\t\t" ;
echo "<a href=" \ "$flv_link\"" >FLV</a>\n\t\t";
echo "<a href=" \ "$hq_flv_link\"" >HQ FLV ( if available)</a>\n\t\t";
echo "<a href=" \ "$mp4_link\"" >MP4</a>\n\t\t";
echo "<a href=" \ "$threegp_link\"" >3GP</a><br><br>\n";
}
|
Salin selepas log masuk
46. Facebook 样式的时间戳
Facebook (x mins age, y hours ago etc)
[代码]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 | function nicetime( $date )
{
if ( empty ( $date )) {
return "No date provided" ;
}
$periods = array ( "second" , "minute" , "hour" , "day" , "week" , "month" , "year" , "decade" );
$lengths = array ( "60" , "60" , "24" , "7" , "4.35" , "12" , "10" );
$now = time();
$unix_date = strtotime ( $date );
if ( empty ( $unix_date )) {
return "Bad date" ;
}
if ( $now > $unix_date ) {
$difference = $now - $unix_date ;
$tense = "ago" ;
} else {
$difference = $unix_date - $now ;
$tense = "from now" ;
}
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] {$tense}" ;
}
|
Salin selepas log masuk
语法:
$date = "2015-07-05 03:45";
$result = nicetime($date); // 2 days ago
?>
以上就是46 个非常有用的 PHP 代码片段(三)的内容,更多相关内容请关注PHP中文网(www.php.cn)!