Werbung

Werbung

Werbung

Archive

Folge uns auf Twitter

Werbung

Jede Menge neue Twitter Follower bekommen. Die Software hat einen kostenlosen Trial Mode, der bis zu 250 Follower bringt.

Willkommen

Willkommen im PHP Archiv Blog! Hier gibts Infos zum Thema PHP Codeschnipsel und Tipps. Bei unserem Projekt phparchiv.de, finden Sie über 5700 Scripte.

Kleine PHP Scripts

Safe redirect mit PHP

Diese kleine Funktion garantiert, dass Besucher zu einer URL weitergeleitet werden. Zuerst versucht die Funktion, den Benutzer mit der header() Funktion weiterzuleiten, geht das nicht, wird Javascript und META-Refresh versucht. Wenn auch das nicht geht, wird ein Link angezeigt.

function safe_redirect($url, $exit=true) {
    // Only use the header redirection if headers are not already sent
    if (!headers_sent()){
        header('HTTP/1.1 301 Moved Permanently');
        header('Location: ' . $url);
        // Optional workaround for an IE bug (thanks Olav)
        header("Connection: close");
    }
    // HTML/JS Fallback:
    // If the header redirection did not work, try to use various methods other methods
    print '';
    print 'Redirecting you...';
    print '';
    print '';
print '';
 // If the javascript and meta redirect did not work,
 // the user can still click this link
 print 'You should be redirected to this URL:
';
 print "<a href="$url">$url</a>
";
 print 'If you are not, please click on the link above.
';
 print '';
    print '';
    // Stop the script here (optional)
    if ($exit) exit;
}

Quelle: jonasjohn.de

Das EXIF Thumbnail aus einem Bild extrahieren

Das kleine PHP-Script zeigt, wie man das EXIF Thumbnail aus einem Bild extrahieren kann.

// file to read
$file = 'test.jpg';
$image = exif_thumbnail($file, $width, $height, $type);
// width, height and type get filled with data
// after calling "exif_thumbnail"
if ($image) {
    // send header and image data to the browser:
    header('Content-type: ' .image_type_to_mime_type($type));
    print $image;
}
else {
    // there is no thumbnail available, handle the error:
    print 'No thumbnail available';
}

Quelle: jonasjohn.de

Einfaches Syntax Highlighting

Einfaches Syntax Highlighting mit PHP

function syntax_highlight($code){
    // this matches --> "foobar" <--
    $code = preg_replace(
        '/"(.*?)"/U',
        '&quot;<span style="color: #007F00">$1</span>&quot;', $code
    );
    // hightlight functions and other structures like --> function foobar() <---
    $code = preg_replace(
        '/(\s)\b(.*?)((\b|\s)\()/U',
        '$1<span style="color: #0000ff">$2</span>$3',
        $code
    );
    // Match comments (like /* */):
    $code = preg_replace(
        '/(\/\/)(.+)\s/',
        '<span style="color: #660066; background-color: #FFFCB1;"><i>$0</i></span>',
        $code
    );
    $code = preg_replace(
        '/(\/\*.*?\*\/)/s',
        '<span style="color: #660066; background-color: #FFFCB1;"><i>$0</i></span>',
        $code
    );
    // hightlight braces:
    $code = preg_replace('/(\(|\[|\{|\}|\]|\)|\->)/', '<strong>$1</strong>', $code);
    // hightlight variables $foobar
    $code = preg_replace(
        '/(\$[a-zA-Z0-9_]+)/', '<span style="color: #0000B3">$1</span>', $code
    );
    /* The \b in the pattern indicates a word boundary, so only the distinct
    ** word "web" is matched, and not a word partial like "webbing" or "cobweb"
    */
    // special words and functions
    $code = preg_replace(
        '/\b(print|echo|new|function)\b/',
        '<span style="color: #7F007F">$1</span>', $code
    );
    return $code;
}
/*example-start*/
/*
** Create some example PHP code:
*/
$example_php_code = '
// some code comment:
$example = "foobar";
print $_SERVER["REMOTE_ADDR"];
$array = array(1, 2, 3, 4, 5);
function example_function($str) {
    // reverse string
    echo strrev($obj);
}
print example_function("foo");
/*
** A multiple line comment
*/
print "Something: " . $example;';
// output the formatted code:
print '<pre>';
print syntax_highlight($example_php_code);
print '</pre>';
/*example-end*/

Quelle

Löschen von doppelten Zeilen

Script zum Löschen von doppelten Zeilen

/**
 * RemoveDuplicatedLines
 * This function removes all duplicated lines of the given text file.
 *
 * @param     string
 * @param     bool
 * @return    string
 */
function RemoveDuplicatedLines($Filepath, $IgnoreCase=false, $NewLine="\n"){
    if (!file_exists($Filepath)){
        $ErrorMsg  = 'RemoveDuplicatedLines error: ';
        $ErrorMsg .= 'The given file ' . $Filepath . ' does not exist!';
        die($ErrorMsg);
    }
    $Content = file_get_contents($Filepath);
    $Content = RemoveDuplicatedLinesByString($Content, $IgnoreCase, $NewLine);
    // Is the file writeable?
    if (!is_writeable($Filepath)){
        $ErrorMsg  = 'RemoveDuplicatedLines error: ';
        $ErrorMsg .= 'The given file ' . $Filepath . ' is not writeable!';
        die($ErrorMsg);
    }
    // Write the new file
    $FileResource = fopen($Filepath, 'w+');
    fwrite($FileResource, $Content);
    fclose($FileResource);
}
/**
 * RemoveDuplicatedLinesByString
 * This function removes all duplicated lines of the given string.
 *
 * @param     string
 * @param     bool
 * @return    string
 */
function RemoveDuplicatedLinesByString($Lines, $IgnoreCase=false, $NewLine="\n"){
    if (is_array($Lines))
        $Lines = implode($NewLine, $Lines);
    $Lines = explode($NewLine, $Lines);
    $LineArray = array();
    $Duplicates = 0;
    // Go trough all lines of the given file
    for ($Line=0; $Line < count($Lines); $Line++){
        // Trim whitespace for the current line
        $CurrentLine = trim($Lines[$Line]);
        // Skip empty lines
        if ($CurrentLine == '')
            continue;
        // Use the line contents as array key
        $LineKey = $CurrentLine;
        if ($IgnoreCase)
            $LineKey = strtolower($LineKey);
        // Check if the array key already exists,
        // if not add it otherwise increase the counter
        if (!isset($LineArray[$LineKey]))
            $LineArray[$LineKey] = $CurrentLine;
        else
            $Duplicates++;
    }
    // Sort the array
    asort($LineArray);
    // Return how many lines got removed
    return implode($NewLine, array_values($LineArray));
}

Beispiel

// Example 1
// Removes all duplicated lines of the file definied in the first parameter.
$RemovedLinesCount = RemoveDuplicatedLines('test.txt');
print "Removed $RemovedLinesCount duplicate lines from the test.txt file.";
// Example 2 (Ignore case)
// Same as above, just ignores the line case.
RemoveDuplicatedLines('test.txt', true);
// Example 3 (Custom new line character)
// By using the 3rd parameter you can define which character
// should be used as new line indicator. In this case
// the example file looks like 'foo;bar;foo;foo' and will
// be replaced with 'foo;bar'
RemoveDuplicatedLines('test.txt', false, ';');

Quelle

Einfacher Banner-Rotator in PHP umgesetzt

Das kleine Script realisiert einen simplen Banner Rotator. Die Banneraufrufe werden in der Datei banners.txt gespeichert. Die einzelnen Banner werden mit einer Tilde getrennt.

echo $ad_banners[1]; // sefunction initializeAds($file) {
  $fcontents = file_get_contents($file);
  $ad_array = explode("~",$fcontents);
  shuffle($ad_array);
  return $ad_array;
}
$ad_banners = initializeAds('banners.txt');
echo $ad_banners[0]; // first randomly ordered banner
cond randomly ordered banner, etc.

Minify HTML mit PHP

Das PHP Script verkleinert HTML Dateien, welches durch PHP erzeugt wurde. Auf diese Weise werden die Seiten schneller geladen.

<?php
function sanitize_output($buffer)
{
    $search = array(
        '/\>[^\S ]+/s', //strip whitespaces after tags, except space
        '/[^\S ]+\</s', //strip whitespaces before tags, except space
        '/(\s)+/s'  // shorten multiple whitespace sequences
        );
    $replace = array(
        '>',
        '<',
        '\\1'
        );
  $buffer = preg_replace($search, $replace, $buffer);
    return $buffer;
}
ob_start("sanitize_output");
?>