Heim > Backend-Entwicklung > PHP-Tutorial > 46 sehr nützliche PHP-Code-Snippets (2)

46 sehr nützliche PHP-Code-Snippets (2)

黄舟
Freigeben: 2023-03-03 18:26:01
Original
1310 Leute haben es durchsucht

16. Entpacken Sie die Datei [Code]php-Code:

function unzip($location,$newLocation)
{
        if(exec("unzip $location",$arr)){
            mkdir($newLocation);
            for($i = 1;$i< count($arr);$i++){
                $file = trim(preg_replace("~inflating: ~","",$arr[$i]));
                copy($location.&#39;/&#39;.$file,$newLocation.&#39;/&#39;.$file);
                unlink($location.&#39;/&#39;.$file);
            }
            return TRUE;
        }else{
            return FALSE;
        }
}
Nach dem Login kopieren

Syntax:

unzip(' test .zip','unziped/test'); //Datei würde im entpackten/test-Ordner entpackt

?>

17. Bild vergrößern

[code ] PHP-Code:

function resize_image($filename, $tmpname, $xmax, $ymax)  
{  
    $ext = explode(".", $filename);  
    $ext = $ext[count($ext)-1];  
   
    if($ext == "jpg" || $ext == "jpeg")  
        $im = imagecreatefromjpeg($tmpname);  
    elseif($ext == "png")  
        $im = imagecreatefrompng($tmpname);  
    elseif($ext == "gif")  
        $im = imagecreatefromgif($tmpname);  
       
    $x = imagesx($im);  
    $y = imagesy($im);  
       
    if($x <= $xmax && $y <= $ymax)  
        return $im;  
   
    if($x >= $y) {  
        $newx = $xmax;  
        $newy = $newx * $y / $x;  
    }  
    else {  
        $newy = $ymax;  
        $newx = $x / $y * $newy;  
    }  
       
    $im2 = imagecreatetruecolor($newx, $newy);  
    imagecopyresized($im2, $im, 0, 0, 0, 0, floor($newx), floor($newy), $x, $y);  
    return $im2;   
}
Nach dem Login kopieren

18. Verwenden Sie mail(), um E-Mails zu senden.

Zuvor haben wir PHP-Codeausschnitte zur Verwendung von Mandrill zum Versenden von E-Mails bereitgestellt, aber wenn Sie dies nicht tun Wenn Sie keinen Drittanbieterdienst nutzen möchten, können Sie das folgende PHP-Code-Snippet verwenden.

[code]php-Code:

function send_mail($to,$subject,$body)
{
$headers = "From: KOONK\r\n";
$headers .= "Reply-To: blog@koonk.com\r\n";
$headers .= "Return-Path: blog@koonk.com\r\n";
$headers .= "X-Mailer: PHP5\n";
$headers .= &#39;MIME-Version: 1.0&#39; . "\n";
$headers .= &#39;Content-type: text/html; charset=iso-8859-1&#39; . "\r\n";
mail($to,$subject,$body,$headers);
}
Nach dem Login kopieren

Syntax:

$to = "admin@koonk.com";

$subject = "Dies ist eine Testmail";

$body = "Hello World!";

send_mail($to,$subject,$body);

?>

19. Konvertieren Sie Sekunden in Tage, Stunden und Minuten

[Code]php-Code:

function secsToStr($secs) {
    if($secs>=86400){$days=floor($secs/86400);$secs=$secs%86400;$r=$days.&#39; day&#39;;if($days<>1){$r.=&#39;s&#39;;}if($secs>0){$r.=&#39;, &#39;;}}
    if($secs>=3600){$hours=floor($secs/3600);$secs=$secs%3600;$r.=$hours.&#39; hour&#39;;if($hours<>1){$r.=&#39;s&#39;;}if($secs>0){$r.=&#39;, &#39;;}}
    if($secs>=60){$minutes=floor($secs/60);$secs=$secs%60;$r.=$minutes.&#39; minute&#39;;if($minutes<>1){$r.=&#39;s&#39;;}if($secs>0){$r.=&#39;, &#39;;}}
    $r.=$secs.&#39; second&#39;;if($secs<>1){$r.=&#39;s&#39;;}
    return $r;
}
Nach dem Login kopieren

Syntax:

$seconds = "56789";

$output = secsToStr($seconds);

echo $output;

?>

20. Datenbankverbindung

<?php
$DBNAME = &#39;koonk&#39;;
$HOST = &#39;localhost&#39;;
$DBUSER = &#39;root&#39;;
$DBPASS = &#39;koonk&#39;;
$CONNECT = mysql_connect($HOST,$DBUSER,$DBPASS);
if(!$CONNECT)
{
    echo &#39;MySQL Error: &#39;.mysql_error();
}
$SELECT = mysql_select_db($DBNAME);
if(!$SELECT)
{
    echo &#39;MySQL Error: &#39;.mysql_error();
}
?>
Nach dem Login kopieren

21. Verzeichnisliste

Verwenden Sie den folgenden PHP-Codeausschnitt, um alle in einem Verzeichnis enthaltenen Dateien und Ordner aufzulisten

[Code]php-Code:

function list_files($dir)
{
    if(is_dir($dir))
    {
        if($handle = opendir($dir))
        {
            while(($file = readdir($handle)) !== false)
            {
                if($file != "." && $file != ".." && $file != "Thumbs.db"/*pesky windows, images..*/)
                {
                    echo &#39;<a target="_blank" href="&#39;.$dir.$file.&#39;">&#39;.$file.&#39;</a><br>&#39;."\n";
                }
            }
            closedir($handle);
        }
    }
}
Nach dem Login kopieren

Syntax:

list_files("images/") ; //Das wird Alle Dateien des Bilderordners auflisten

?>

22. Benutzersprache erkennen

Verwenden Sie das folgende PHP-Code-Snippet, um die Benutzersprache zu erkennen

[Code]PHP-Code:

function get_client_language($availableLanguages, $default=&#39;en&#39;){
    if (isset($_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;])) {
        $langs=explode(&#39;,&#39;,$_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;]);
        foreach ($langs as $value){
            $choice=substr($value,0,2);
            if(in_array($choice, $availableLanguages)){
                return $choice;
            }
        }
    } 
    return $default;
}
Nach dem Login kopieren

23. CSV-Datei anzeigen

[Code]PHP-Code:

function readCSV($csvFile){
    $file_handle = fopen($csvFile, &#39;r&#39;);
    while (!feof($file_handle) ) {
        $line_of_text[] = fgetcsv($file_handle, 1024);
    }
    fclose($file_handle);
    return $line_of_text;
}
Nach dem Login kopieren

Syntax:

$csvFile = "test.csv";

$csv = readCSV($csvFile);

$a = csv[0][0] ; // Dies erhält den Wert von Spalte 1 und Zeile 1

?>

24. Erstellen Sie eine CSV-Datei aus PHP-Daten

[ Code]php-Code:

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

Syntax:

$data[0] = "apple";

$data [1] = "oranges" ;

generateCsv($data, $delimiter = ',', $enclosure = '"');

?>

25 . XML-Daten analysieren

[code]php-code:

$xml_string="<!--?xml version=&#39;1.0&#39;?-->
<moleculedb>
    <molecule name="Benzine">
        <symbol>ben</symbol>
        <code>A</code>
    </molecule>
    <molecule name="Water">
        <symbol>h2o</symbol>
        <code>K</code>
    </molecule>
</moleculedb>";
  
//load the xml string using <a href="http://www.php-z.com/" target="_blank" class="relatedlink">Simple</a>xml function
$xml = simplexml_load_string($xml_string);
  
//loop through the each node of molecule
foreach ($xml->molecule as $record)
{
   //attribute are accessted by
   echo $record[&#39;name&#39;], &#39;  &#39;;
   //node are accessted by -> operator
   echo $record->symbol, &#39;  &#39;;
   echo $record->code, &#39;<br>&#39;;
}
Nach dem Login kopieren

26. JSON-Daten analysieren

[code]php-code:

$json_string=&#39;{"id":1,"name":"rolf","country":"russia","office":["google","oracle"]} &#39;;
$obj=json_decode($json_string);
//print the parsed data
echo $obj->name; //displays rolf
echo $obj->office[0]; //displays google
Nach dem Login kopieren

27 URL

Dieses PHP-Snippet kann Ihnen dabei helfen, dass Benutzer nach der Anmeldung direkt zu der Seite springen können, die sie zuvor besucht haben

[Code]php-Code:

function current_url()
{
$url = "http://" . $_SERVER[&#39;HTTP_HOST&#39;] . $_SERVER[&#39;REQUEST_URI&#39;];
$validURL = str_replace("&", "&", $url);
return validURL;
}
Nach dem Login kopieren

Syntax:

echo „Derzeit sind Sie auf: „.current_url();

?>

28 jedes Twitter-Konto

[code]php-Code:

function my_twitter($username) 
{
     $no_of_tweets = 1;
     $feed = "http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=" . $no_of_tweets;
     $xml = simplexml_load_file($feed);
    foreach($xml->children() as $child) {
        foreach ($child as $value) {
            if($value->getName() == "link") $link = $value[&#39;href&#39;];
            if($value->getName() == "content") {
                $content = $value . "";
        echo &#39;<p class="twit">&#39;.$content.&#39; <a class="twt" href="&#39;.$link.&#39;" title="">  </a></p>&#39;;
            }    
        }
    }    
}
Nach dem Login kopieren

Syntax:

$handle = "koonktech";

my_twitter($handle);

?>

29. Anzahl der Retweets

Verwenden Sie dieses PHP-Snippet, um zu ermitteln, wie oft die Seite weitergeleitet wird URL haben?

[code]php-Code:

function tweetCount($url) {
    $content = file_get_contents("http://api.tweetmeme.com/url_info?url=".$url);
    $element = new SimpleXmlElement($content);
    $retweets = $element->story->url_count;
    if($retweets){
        return $retweets;
    } else {
        return 0;
    }
}
Nach dem Login kopieren

Syntax:

$url = "http :// blog.koonk.com";

$count = tweetCount($url);

return $count;

?>

30. Berechnen der Unterschied zwischen zwei Daten

[Code]php-Code:

<!--?php
$date1 = date( &#39;Y-m-d&#39; );
$date2 = "2015-12-04";
$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));
printf("%d years, %d months, %d days\n", $years, $months, $days);
-------------------------------------------------------- OR
$date1 = new DateTime("2007-03-24");
$date2 = new DateTime("2009-06-26");
$interval = $date1--->diff($date2);
echo "difference " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days "; 
// shows the total amount of days (not divided into years, months and days like above)
echo "difference " . $interval->days . " days ";
-------------------------------------------------------- OR
     
     
/**
 * Calculate differences between two dates with precise semantics. <a href="http://www.php-z.com/" target="_blank" class="relatedlink">Base</a>d on PHPs DateTime::diff()
 * implementation by Derick Rethans. Ported to PHP by Emil H, 2011-05-02. No rights reserved.
 * 
 * See here for original code:
 * http://svn.php.net/viewvc/php/php-src/trunk/ext/date/lib/tm2unixtime.c?revision=302890&view=markup
 * http://svn.php.net/viewvc/php/php-src/trunk/ext/date/lib/interval.c?revision=298973&view=markup
 */
function _date_range_limit($start, $end, $adj, $a, $b, $result)
{
    if ($result[$a] < $start) {
        $result[$b] -= intval(($start - $result[$a] - 1) / $adj) + 1;
        $result[$a] += $adj * intval(($start - $result[$a] - 1) / $adj + 1);
    }
    if ($result[$a] >= $end) {
        $result[$b] += intval($result[$a] / $adj);
        $result[$a] -= $adj * intval($result[$a] / $adj);
    }
    return $result;
}
function _date_range_limit_days($base, $result)
{
    $days_in_month_leap = array(31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    $days_in_month = array(31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    _date_range_limit(1, 13, 12, "m", "y", &$base);
    $year = $base["y"];
    $month = $base["m"];
    if (!$result["invert"]) {
        while ($result["d"] < 0) {
            $month--;
            if ($month < 1) {
                $month += 12;
                $year--;
            }
            $leapyear = $year % 400 == 0 || ($year % 100 != 0 && $year % 4 == 0);
            $days = $leapyear ? $days_in_month_leap[$month] : $days_in_month[$month];
            $result["d"] += $days;
            $result["m"]--;
        }
    } else {
        while ($result["d"] < 0) {
            $leapyear = $year % 400 == 0 || ($year % 100 != 0 && $year % 4 == 0);
            $days = $leapyear ? $days_in_month_leap[$month] : $days_in_month[$month];
            $result["d"] += $days;
            $result["m"]--;
            $month++;
            if ($month > 12) {
                $month -= 12;
                $year++;
            }
        }
    }
    return $result;
}
function _date_normalize($base, $result)
{
    $result = _date_range_limit(0, 60, 60, "s", "i", $result);
    $result = _date_range_limit(0, 60, 60, "i", "h", $result);
    $result = _date_range_limit(0, 24, 24, "h", "d", $result);
    $result = _date_range_limit(0, 12, 12, "m", "y", $result);
    $result = _date_range_limit_days(&$base, &$result);
    $result = _date_range_limit(0, 12, 12, "m", "y", $result);
    return $result;
}
/**
 * Accepts two unix timestamps.
 */
function _date_diff($one, $two)
{
    $invert = false;
    if ($one > $two) {
        list($one, $two) = array($two, $one);
        $invert = true;
    }
    $key = array("y", "m", "d", "h", "i", "s");
    $a = array_combine($key, array_map("intval", explode(" ", date("Y m d H i s", $one))));
    $b = array_combine($key, array_map("intval", explode(" ", date("Y m d H i s", $two))));
    $result = array();
    $result["y"] = $b["y"] - $a["y"];
    $result["m"] = $b["m"] - $a["m"];
    $result["d"] = $b["d"] - $a["d"];
    $result["h"] = $b["h"] - $a["h"];
    $result["i"] = $b["i"] - $a["i"];
    $result["s"] = $b["s"] - $a["s"];
    $result["invert"] = $invert ? 1 : 0;
    $result["days"] = intval(abs(($one - $two)/86400));
    if ($invert) {
        _date_normalize(&$a, &$result);
    } else {
        _date_normalize(&$b, &$result);
    }
    return $result;
}
$date = "2014-12-04 19:37:22";
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r( _date_diff( strtotime($date), time() ) );
echo &#39;
'; ?>
Nach dem Login kopieren

 以上就是46 个非常有用的 PHP 代码片段(二)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage