Skip to content

Instantly share code, notes, and snippets.

View nmcgann's full-sized avatar

Neil McGann nmcgann

  • UK
  • 04:23 (UTC +01:00)
View GitHub Profile
@nmcgann
nmcgann / get_host_url.php
Last active March 14, 2017 21:42
PHP function to automatically get a host url from $_SERVER variables to enable creation of absolute links etc. (Apache)
<?php
//e.g.semi-colon separated define list of all allowable hosts (does not need to show sub-domains - works automatically)
//$valid_hosts = 'first-host.com;second-host.com';
//create absolute url for page address - quite tricky to make this work on linux / windows and shared hosting and also
//php built-in web server.
//Constructed URL ends up in a trailing slash with the $target parameter appended.
//defaults to not checking a valid host list unless one is supplied
function get_host_url($target = '', $valid_hosts = '*'){
// Get HTTP/HTTPS (the possible values for this vary from server to server)
@nmcgann
nmcgann / IMAP_access.php
Created February 15, 2017 09:09
IMAP access class to decode imap body, fetch and assemble all the parts and attachments. Used as an utility class for processing a whole mailbox.
<?php
/**
* IMAP_access. Utility class for processing a mailbox for applications that
* want to grab the body text and do something with it e.g. create a new
* todo list item. Enough clues in there that it can be expanded to do
* a lot more if required - e.g. also grab file attachments.
*
* Based on several part-working tutorials (fixed), the PHP manual examples
* and testing on real email samples from Gmail, Thunderbird and MS outlook 2010.
* (flatten_parts is the tricky bit and was from here:
@nmcgann
nmcgann / vultr_prov.sh
Created March 12, 2017 18:56
Provision and fix the Vultr LAMP stack (Centos 6). Adds PhpMyAdmin and fixes the broken .htaccess files due to fcgi config (as of March 2017)
#!/bin/bash
#Provision the vultr Centos6 LAMP stack as it is a bit broken as standard
#update and fetch missing things
yum update -y
yum install -y php56u-bcmath php56u-imap php56u-intl php56u-pecl-memcache
#disable opcache for development
perl -pi -e 's/^opcache.enable=1/opcache.enable=0/' /etc/php.d/10-opcache.ini
@nmcgann
nmcgann / lightsail_install_memcache.sh
Created March 14, 2017 08:41
bash script to install memcache on AWS lightsail LAMP stack (Mar 2017)
#!/bin/bash
#install memcache on AWS lightsail bitnami
#memcache (no "d") is handy for cross platform testing as it will work on windows
#WAMP etc. where the memcached version does not appear to have a windows port)
#(lightsail lamp has the build environment gcc etc. already installed)
#memcache version
VERSION='3.0.8'
cd /root/bitnami
@nmcgann
nmcgann / wp-db-find-and-replace.sh
Created April 13, 2017 06:30
Wordpress Database search and replace domain including serialized data.
#!/bin/bash
#wp-db-find-and-replace.sh
#
#Script to search and replace on wordpress db in .sql format e.g. to change domain url
#Works with serialized data as it recognises the php serialized format
#writes a file output
#Based on version of:
#http://wojnowski.net.pl/main/index/updating-wordpress-database-urls-part-2
#(this doesn't work as-is, but the principles are good once it is fixed)
@nmcgann
nmcgann / phpzip.php
Created May 7, 2017 16:29
PHP Command line zip utility. Simply zips a directory structure into an archive. No bells or whistles.
<?php
/*
* Command line zip equivalent - very simple version that just zips a directory structure completely.
* No options!
* Useful when it is needed to build e.g. a Wordpress plugin zip archive, but the dev environment
* doesn't have zip - i.e. MINGW64 as bundled with Git - has unzip, but not zip.
*/
date_default_timezone_set('UTC');
error_reporting (E_ALL);