|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
#######
#
# E-scripts on PHP3, PHP4 and friends.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
# (find-eev-quick-intro)
# http://angg.twu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/php.e>
# or at <http://angg.twu.net/e/php.e.html>.
# See also <http://angg.twu.net/emacs.html>,
# <http://angg.twu.net/.emacs[.html]>,
# <http://angg.twu.net/.zshrc[.html]>,
# <http://angg.twu.net/escripts.html>,
# and <http://angg.twu.net/>.
#
#######
# «.debian» (to "debian")
# «.functions» (to "functions")
# «.webshell» (to "webshell")
# «.webshell-old» (to "webshell-old")
# «.phpnuke» (to "phpnuke")
# «.php5-on-etch» (to "php5-on-etch")
# «.php5-lenny» (to "php5-lenny")
# «.php-5.6-on-wheezy» (to "php-5.6-on-wheezy")
# «.php-5.5-on-wheezy» (to "php-5.5-on-wheezy")
# «.php-doc» (to "php-doc")
# «.php5-cli» (to "php5-cli")
# «.require-and-include» (to "require-and-include")
# «.include_path» (to "include_path")
# «.facebook-sdk» (to "facebook-sdk")
# «.autoload» (to "autoload")
# «.errors» (to "errors")
# «.boris» (to "boris")
# «.naofo.de» (to "naofo.de")
# «.php-raphael-0» (to "php-raphael-0")
# «.php-raphael» (to "php-raphael")
# «.http-header» (to "http-header")
# «.php-http» (to "php-http")
# (find-phpdocpage "tutorial")
# (find-phpfuncpage "phpinfo")
# (find-phpfuncpage "require")
mkdir ~/public_html/
(setq ee-file-php "~/public_html/ee-tmp.php4")
(setq ee-url-php "http://127.0.0.1/~edrx/ee-tmp.php4")
# oops - php disabled?
#####
#
# debian
# 2022nov01
#
#####
# «debian» (to ".debian")
# (find-zsh "availabledebs | sort | grep php")
# (find-status "php")
# (find-vldifile "php.list")
# (find-udfile "php/")
# (find-status "php7.4")
# (find-vldifile "php7.4.list")
# (find-udfile "php7.4/")
# (find-status "php7.4-common")
# (find-vldifile "php7.4-common.list")
# (find-udfile "php7.4-common/")
# (find-status "php-cli")
# (find-vldifile "php-cli.list")
# (find-udfile "php-cli/")
# (find-status "php7.4-cli")
# (find-vldifile "php7.4-cli.list")
# (find-udfile "php7.4-cli/")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
apti php
apti php-cli
# (find-man "php-cli")
# (find-man "php")
# (find-man "php.default")
php-cli: /usr/share/man/man1/php.default.1.gz
https://www.php.net/manual/en/
https://www.php.net/manual/en/intro-whatcando.php
#####
#
# functions
# 2022nov01
#
#####
# «functions» (to ".functions")
# https://www.php.net/manual/en/function.include.php
# https://www.php.net/language.functions
* (eepitch-php)
* (eepitch-kill)
* (eepitch-php)
function square($a) { return $a*$a; }
echo square(2);
#####
#
# ?
# 2004sep24
#
#####
#*
# (ee-once (eeb-php))
echo getcwd(), "\n";
#*
# (ee-once (eeb-php))
echo system("set"), "\n";
#*
# (ee-once (eeb-php))
echo $_SERVER['REMOTE_ADDR'], "\n";
#*
# (ee-once (eeb-php))
$ip = $_SERVER['REMOTE_ADDR'];
$goodip = "127.0.0.1";
if ($ip != $goodip) {
echo "$ip != $goodip\n";
exit;
}
echo "ok\n";
#*
# (ee-once (eeb-php+))
# (find-phpdocpage "index")
phpinfo();
#*
# (ee-once (eeb-php))
# (find-phplangw3m "types.array.html")
# (find-phpdocw3m "control-structures.foreach.html")
# (find-phplangpage "types.array")
$arr = array("foo" => "bar", 12 => true);
echo $arr["foo"], "\n"; // bar
echo $arr[12], "\n"; // 1
#*
# (find-phpdocpage "index")
# (find-phplangpage "variables.external")
# (find-phpfuncpage "import-request-variables")
#####
#
# webshell
# 2004sep24
#
#####
# «webshell» (to ".webshell")
#*
sudo touch /var/www/tmp.php
sudo chmod 666 /var/www/tmp.php
#*
cat > /var/www/tmp.php <<'%%%'
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<?
$ip = $_SERVER['REMOTE_ADDR'];
$goodip = "127.0.0.1";
if ($ip != $goodip) {
echo "$ip != $goodip\n";
exit;
} else {
$pwd = $_REQUEST['pwd'];
if (!$pwd) { $pwd = getcwd(); }
$command = $_REQUEST['command'];
if ($command) { $result = `cd $pwd\n$command`; }
?>
<form action="<? echo basename($_SERVER['SCRIPT_NAME']) ?>" method=get>
at: <input type=text name=pwd value="<? echo $pwd ?>" size=56><br>
do:
<textarea name='command' cols=60 rows=4><? echo $command ?>
</textarea>
<br>
<input type=submit name=do value="Go!">
</form>
<pre>
<? echo $result ?>
</pre>
<?
}
?>
</body></html>
%%%
lynx http://127.0.0.1/tmp.php
#*
sudo rm /var/www/tmp.php
#*
#####
#
# To run shell commands in machines that allow only php
# 2000aug02
#
#####
# «webshell-old» (to ".webshell-old")
# (find-fline "~/PHP3/tarstuff.php3")
#*
cat > /var/www/tmp.php3 <<'---'
<? include ("/home/root/PHP3/functions.php3");
// error_reporting(1+12+48);
function v($s) { return htmlspecialchars($s); }
function p($s) { return htmlspecialchars($s); }
if (!$pwd)
$pwd = posix_getcwd();
echo "<head></head>
<body>
<form action=\"http://$HTTP_HOST$SCRIPT_NAME\" method=post>
cd <input type=text size=60 name=pwd value=\"".v($pwd)."\"><br>
<input type=text size=63 name=cmd value=\"".v($cmd)."\"><br>
<input type=submit></form>
<pre>\n";
if (!@chdir($pwd)) {
echo "no such dir: $pwd\n";
} else {
if ($cmd) {
$s = "# $pwd\n# $cmd\n\n";
$arr = array();
$cmd = "export EE=" . dirname($SCRIPT_FILENAME) . "/ee.sh; " .
"alias ee='. $EE'; " .
"($cmd) 2>&1";
exec($cmd, $arr, $exitcode);
$s .= join("\n", $arr) . "\n";
if ($exitcode)
$s .= "\n# exitcode = $exitcode\n";
echo p($s);
}
}
echo "</pre></body>\n";
?>
---
wget -q -O - 'http://127.0.0.1/tmp.php3'
wget -q -O - 'http://127.0.0.1/tmp.php3?pwd=/home'
wget -q -O - 'http://127.0.0.1/tmp.php3?pwd=/home&cmd=echo+hello'
wget -q -O - 'http://127.0.0.1/tmp.php3?pwd=/home&cmd=ls;false'
wget -q -O - 'http://127.0.0.1/tmp.php3?pwd=/naaa'
lynx http://127.0.0.1/tmp.php3
#*
# (find-php3fun "exec")
# (find-php3fun "chdir")
# (find-php3fun "posix-getcwd")
phpinfo();
lynx /tmp/o.html
# (find-php3hw3 "language.variables.external.html")
# (find-php3hw3 "configuration.html")
# (find-angg ".zshrc" "runtmpcgi")
# (find-php3fun "require")
# (find-php3fun "include")
Pgrepp m/php/i |& l
#####
#
# php3-doc
# 2000jun25
#
#####
# (find-status "php3-doc")
# (find-vldifile "php3-doc.list")
# (find-fline "/usr/doc/php3-doc/")
# (find-fline "/usr/doc/php3-doc/html/")
# (find-fline "/usr/doc/php3-doc/")
# (find-fline "/usr/share/doc-base/php3-doc")
# (find-udw3 "php3-doc/html/manual.html")
lynx /usr/doc/php3-doc/html/manual.html
edrxnetscape /usr/doc/php3-doc/html/manual.html &
# (find-udw3 "php3-doc/html/")
# (find-node "(libc)Pipe to a Subprocess")
# Make a single file with the bodies of all docs of PHP functions:
#*
rm -Rv /tmp/phpfunctions/
mkdir /tmp/phpfunctions/
cd /usr/doc/php3-doc/html/
for i in function.*.html; do
cp -v $i /tmp/phpfunctions/$(echo $i | sed 's/function.\(.*.html\)/\1/')
done
#*
cd /tmp/phpfunctions/
for i in *; do
echo "«$(basename $i .html)»"
lynx -dump $i \
| expect -c '
set s [read stdin]
regsub -all "_____+" $s "*" s
regexp "*\n *\n *(.*\n) +*" $s -> s
puts "$s\n"
'
done | tee ~/tmp/ophpfunctions
#*
# (find-fline "~/tmp/ophpfunctions")
#####
#
# php3
# 2000jun25
#
#####
# (find-status "php3")
# (find-vldifile "php3.list")
# (find-fline "/usr/doc/php3/")
# (find-vldifile "php3.postinst")
# (find-vldifile "php3.postinst" "/etc/apache/httpd.conf")
# (find-vldifile "php3.prerm")
# (find-fline "/usr/doc/php3/extra/cyberlib/")
# (find-fline "/usr/doc/php3/examples/")
# (find-fline "/usr/doc/php3/examples/album/")
# (find-udw3 "php3-doc/html/configuration.html")
# (find-fline "/etc/php3/apache/php3.ini")
# (find-fline "/etc/apache/")
# (find-fline "/etc/apache/httpd.conf")
# (find-fline "/etc/apache/httpd.conf" "php3_module")
# (find-fline "/usr/sbin/apacheconfig")
# (find-fline "/usr/sbin/apacheconfig" "sub find_suitable_modules")
# (find-fline "/usr/sbin/apacheconfig" "Waiting for apache to terminate ...")
/usr/sbin/apachectl stop
sleep 10
/usr/sbin/apachectl start
/etc/init.d/apache reload-modules
#####
#
# php3-dev
# 2000jul04
#
#####
# (find-status "php3-dev")
# (find-vldifile "php3-dev.list")
# (find-fline "/usr/doc/php3-dev/")
#####
#
# First php3 tests
# 2000jun28
#
#####
#*
cat > /var/www/test.php3 <<'----'
<html>
<head>
<title>Example</title>
</head>
<body>
<?php echo "Hi, I'm a PHP script!"; ?>
</body>
</html>
----
wget -q -O - http://127.0.0.1/test.php3
#*
# (find-angg ".zshrc" "runtmpcgi")
function settmpphp3 () {(
echo "<html>\n<head>\n<title>PHP3 test $(date)</title>\n<body>"
if [[ $* -ge 1 ]]; then print -l $*; else cat; fi
echo "</body>\n</html>"
) > /var/www/tmp.php3
}
settmpphp3 <<'---'
<?php echo "Hi, I'm a PHP script!"; ?>
---
wget -q -O - http://127.0.0.1/tmp.php3
#*
cat > /var/www/tmp.php3 <<'---'
<? echo "Foo\n"; ?>
---
wget -q -O - http://127.0.0.1/tmp.php3
#*
# (find-fline "/usr/doc/php3/examples/dir.php3" "<?")
cat > /var/www/tmp.php3 <<'---'
<? $code = "\$dir = opendir(\".\");
while(\$file = readdir(\$dir)) {
echo \"\$file \";
}
closedir(\$dir);
";
echo HTMLSpecialChars($code);
?>
Output:
<? eval($code); echo "\n"; ?>
---
wget -q -O - http://127.0.0.1/tmp.php3
#*
# (find-fline "/usr/doc/php3/examples/dir.php3" "<?")
cat > /var/www/tmp.php3 <<'---'
<? $dir = opendir(".");
while($file = readdir($dir)) { echo "$file "; }
closedir($dir);
?>
---
wget -q -O - http://127.0.0.1/tmp.php3
#*
#####
#
# First php3 tests using eep and eep-bounded
# 2000jun28
#
#####
# (find-angg ".emacs" "php3")
* (eepitch-php)
* (eepitch-kill)
* (eepitch-php)
echo "Foo\n";
$arr = array("a1" => "a", "a2" => "a", "b0" => "b");
echo join(" .. ", $arr), "\n";
echo 2 == 4, "\n";
if (0) echo "Yes\n"; else echo "No\n";
if (1) echo "Yes\n"; else echo "No\n";
if ("") echo "Yes\n"; else echo "No\n";
if ("0") echo "Yes\n"; else echo "No\n";
if ("a") echo "Yes\n"; else echo "No\n";
if ("no") echo "Yes\n"; else echo "No\n";
echo "2" == 2, "\n";
echo $arr["a1"], "\n";
echo $arr[1], "\n";
function prty($foo) {
echo "\$foo==$foo; type is " . gettype($foo) . "\n";
}
prty(0 == 1);
$arr = array("a1" => "a", "a2" => "a", "b0" => "b");
prty($arr);
reset($arr);
prty($brr = each($arr));
prty($brr[0]);
prty($brr[1]);
// print join(" .. ", $brr), "\n";
prty(join(" ,, ", each($arr)));
prty(each($arr));
prty(each($arr));
prty(each($arr));
prty(each($arr));
$arr = array("a1" => "a", "a2" => "a", "b0" => "b");
print *$arr, "\n";
function w0($obj) {
switch(gettype($obj)) {
case "string":
echo "\"", $obj, "\"";
break;
case "array":
if (count($obj) == 0) {
echo "[]";
} else {
$sep = "[";
reset($obj);
while (list($key, $val) = each($obj)) {
echo $sep;
w0($key);
echo " => ";
w0($val);
$sep = ", ";
}
echo "]";
}
break;
default:
echo $obj;
}
}
function w($obj) {
w0($obj);
echo "\n";
}
$arr = array("a1" => "a", "a2" => "a", "b0" => "b", 2, 5, "");
w($arr);
#*
// (find-php3hw3 "language.variables.predefined.html")
// Try to call this with "ee '?foo=bar'".
echo $QUERY_STRING, "\n";
echo $foo, "\n";
#*
// (eep-bounded)
// (find-php3fun "array")
// (find-php3fun "ksort")
#*
// (eep-bounded)
// (find-php3hw3 "language.types.type-juggling.html")
#*
#*
#*
cat /var/www/tmp.php3
# (find-php3fun "echo")
# (find-php3hw3 "language.basic-syntax.html")
# (find-php3hw3 "language.types.string.html")
# (find-php3hw3 "language.variables.predefined.html")
# (find-php3hw3 "configuration.html#INI.TRACK-VARS")
# (find-php3hw3 "language.variables.external.html")
# (find-php3fun "eval")
# (find-php3hw3 "feature-fileupload.html")
# (find-php3hw3 "features.file-upload.html")
# (find-php3hw3 "features.images.html")
# (find-php3hw3 "feature-images.html")
# (find-php3hw3 "feature-regexps.html")
# (find-php3fun "header")
#####
#
# phplib
# 2000jun25
#
#####
# (find-status "phplib")
# (find-vldifile "phplib.list")
# (find-fline "/usr/doc/phplib/")
# (find-fline "/usr/lib/phplib/")
# (find-fline "/usr/lib/phplib/stuff/")
#####
#
# php3 source
# 2000jun27
#
#####
cd $SDEBIAN
agrep 'source.*php' ls-lR.i
pdsc $SDEBIAN/dists/potato/main/source/web/php3_3.0.16-2potato3.dsc
cd /usr/src/php3-3.0.16/
# (code-c-d "php3src" "/usr/src/php3-3.0.16/")
# (find-php3srcfile "")
# (find-php3srcfile "functions/")
# (find-php3srcfile "test/")
# (find-php3srcfile "test/README")
# (find-php3srcfile "tests/")
cd /usr/src/php3-3.0.16/
agrep -i post $(find * | grep '\.c$') | l -S
# (find-php3srcfile "functions/post.c")
# (find-php3srcfile "functions/post.c" "void php3_treat_data(")
# (find-php3srcfile "functions/post.h")
# (find-php3srcfile "functions/")
# (find-php3srcfile "main.c" "\"post\"")
# (find-php3srcfile "main.c" "GET data")
#####
#
# php3-mysql
# 2000jul02
#
#####
# «php3-mysql»
# (find-status "php3-mysql")
# (find-vldifile "php3-mysql.list")
# (find-fline "/usr/doc/php3-mysql/")
# (find-fline "/usr/doc/php3-mysql/README.Debian")
# (find-fline "/usr/doc/php3-mysql/README.Debian" "php3-local")
# (find-vldifile "php3.list")
# (find-fline "/etc/php3/apache/php3.ini")
# (find-fline "/etc/php3/apache/php3.ini" "; extension=msql.so")
# Add:
# ; Edrx:
# extension=mysql.so
/etc/init.d/apache restart
#####
#
# template-0.5
# 2000jul26
#
#####
rm -Rv /usr/src/template-0.5/
rm -Rv /var/www/template-0.5/
tar -xvzf $S/http/lide.pruvodce.cz/wayne/template-0.5.tgz -C /usr/src/
tar -xvzf $S/http/lide.pruvodce.cz/wayne/template-0.5.tgz -C /var/www/
cd /usr/src/template-0.5/
# (find-fline "/usr/src/template-0.5/")
lynx http://127.0.0.1/template-0.5/
// (find-php3hw3 "features.file-upload.html")
/***
o $userfile - The temporary filename in which the uploaded file was
stored on the server machine.
o $userfile_name - The original name of the file on the sender's
system.
o $userfile_size - The size of the uploaded file in bytes.
o $userfile_type - The mime type of the file if the browser provided
this information. An example would be "image/gif".
Note that the "$userfile" part of the above variables is whatever the
name of the INPUT field of TYPE=file is in the upload form. In the
above upload form example, we chose to call it "userfile".
***/
# (find-angg "PHP3/")
# (find-angg "PHP3/functions.php3")
#*
cat > /var/www/tmp.php3 <<'---'
<? include ("/home/root/PHP3/functions.php3");
$a = "foo";
sw('$GLOBALS = ', $GLOBALS);
sw('$GLOBALS["a"] = ', $GLOBALS["a"]);
?>
---
wget -q -O - 'http://127.0.0.1/tmp.php3?foo=bar'
#*
cat > /var/www/tmp.php3 <<'---'
<?include ("/home/root/PHP3/functions.php3");
w($HTTP_GET_VARS); ?>
---
wget -q -O - 'http://127.0.0.1/tmp.php3?foo=bar'
#*
cat > /var/www/tmp.php3 <<'---'
<?include ("/home/root/PHP3/functions.php3");
phpinfo(); ?>
---
wget -q -O - 'http://127.0.0.1/tmp.php3?foo=bar' \
| tee /tmp/o.html \
| unhtml
lynx /tmp/o.html
#*
#####
#
# phpnuke
# 2001jul07
#
#####
# «phpnuke» (to ".phpnuke")
#*
rm -Rv /usr/src/phpnuke-5.0/
mkdir /usr/src/phpnuke-5.0/
cd /usr/src/phpnuke-5.0/
tar -xvzf $S/ftp/carroll.cac.psu.edu/pub/linux/distributions/mandrake-devel/projects/phpnuke/PHP-Nuke-5.0.tar.gz
laf html/manual/index.html
rm -v html/manual/index.html
#*
mysqladmin create nuke
cd /usr/src/phpnuke-5.0/sql/
mysql nuke < nuke.sql |& tee omn
#*
rm -Rv /var/www/nuke/
mkdir /var/www/nuke/
cd /usr/src/phpnuke-5.0/html/
cp -diPpvR * /var/www/nuke/
# (find-fline "/var/www/nuke/")
# (find-fline "/var/www/nuke/config.php")
# (find-fline "/var/www/nuke/config.php" "$nukeurl = ")
#$nukeurl = "http://127.0.0.1/nuke";
#*
# (find-fline "/etc/apache/srm.conf" "x-httpd-php3")
apti php3-mysql php3-cgi-mysql
/etc/init.d/apache restart
#*
edrxnetscape http://127.0.0.1/nuke/ &
#*
# (find-status "php3-mysql")
# (find-vldifile "php3-mysql.list")
# (find-fline "/usr/doc/php3-mysql/")
# (find-status "php3-cgi-mysql")
# (find-vldifile "php3-cgi-mysql.list")
# (find-fline "/usr/doc/php3-cgi-mysql/")
# (find-status "php3-cgi")
# (find-vldifile "php3-cgi.list")
# (find-fline "/usr/doc/php3-cgi/")
# (code-c-d "phpnuke" "/usr/src/phpnuke-5.0/")
# (find-phpnukefile "")
# (find-phpnukefile "INSTALL" "mysqladmin create nuke")
# (find-phpnukew3 "html/manual/")
(defun eeb-invoke (f sdelim &optional edelim &rest rest)
(defun eephp (s &optional e)
(eev "wget -q -O - http://127.0.0.1/ee-tmp.php")
(ee-write-with-nl s e "<?\n" "?>" "/var/www/ee-tmp.php"))
#*
# (eeb-php)
$a = array (1, 2, array ("a", "b", "c"));
$b = 3.14;
$c = TRUE;
var_dump ($a, $b, $c);
#*
/* output:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
*/
var_dump($b,$c);
#####
#
# php5 on etch
# 2007may25
#
#####
# «php5-on-etch» (to ".php5-on-etch")
# (find-status "php5")
# (find-vldifile "php5.list")
# (find-udfile "php5/")
# (find-zsh "availabledebs | sort")
# (find-zsh "availabledebs | sort" "php5")
# (find-zsh "availabledebs | sort" "\nphp5")
# (find-zsh "installeddebs | sort")
# (find-available "libapache-mod-php5")
# (find-available "libapache-mod-php5" "(apache 1.3 module)")
# (find-available "libapache2-mod-php5")
# (find-available "libapache2-mod-php5" "(apache 2 module)")
# (find-sh0 "sudo chown edrx:edrx /etc/php5/apache/php.ini")
# (find-sh0 "sudo chown edrx:edrx /etc/php5/apache2/php.ini")
# (find-fline "/etc/php5/apache/php.ini" "allow_url_include =")
# (find-fline "/etc/php5/apache2/php.ini" "allow_url_include =")
# (find-fline "/var/www/tmp/")
# (find-fline "/var/www/tmp/test-outer.php")
# (find-fline "/var/www/tmp/test-inner.php")
# (find-fline "/var/www/tmp/foo.php")
# (find-fline "/var/www/tmp/phptest-inc.php")
<?
// This file: (find-fline "/var/www/tmp/test-inner.php")
echo "Hello!";
?>
<?
// This file: (find-fline "/var/www/tmp/test-outer.php")
// See also: (find-fline "/var/www/tmp/test-inner.php")
require ("http://localhost:80/tmp/test-inner.php");
?>
http://localhost:8080/tmp/test-inner.php
http://localhost:8080/tmp/test-outer.php
sudo /etc/init.d/apache restart
libapache-mod-php5
libapache2-mod-php5
#####
#
# php5
# 2010oct04
#
#####
# «php5-lenny» (to ".php5-lenny")
# (find-zsh "availabledebs | sort | grep php")
Creating config file /etc/php5/cli/php.ini with new version
/home/edrx(edrx:ho)# apti php5-doc
# (find-status "php5-cli")
# (find-vldifile "php5-cli.list")
# (find-udfile "php5-cli/")
# (find-vldifile "php5-cli.postinst")
# (find-vldifile "php5-cli.prerm")
# (find-vldifile "php5-cli.postrm")
# (find-man "1 php5")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
php5 -a
<? echo "Hello\n"; ?>
<? echo "Hello\n";
echo "Foo\n";
?>
# (find-status "php5-cli")
# (find-vldifile "php5-cli.list")
# (find-udfile "php5-cli/")
# (find-man "1 php5")
#####
#
# PHP - workshop do Raphael
# 2012may31
#
#####
# «php-raphael-0» (to ".php-raphael-0")
# (find-angg ".emacs" "php")
# (find-status "apache2")
# (find-vldifile "apache2.list")
# (find-udfile "apache2/")
# (find-status "apache2-doc")
# (find-vldifile "apache2-doc.list")
# (find-udfile "apache2-doc/")
# (find-fline "/var/www/")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /var/www/
ls -laF
sudo chown -v edrx. . *
ls -laF
# (find-fline "/var/www/")
# (find-fline "/var/www/hello.txt")
# (find-fline "/var/www/foo.php")
# http://localhost/
# http://localhost/hello.txt
# http://localhost/foo.php
# (find-status "php5")
# (find-vldifile "php5.list")
# (find-udfile "php5/")
# (find-status "libapache2-mod-php5")
# (find-vldifile "libapache2-mod-php5.list")
# (find-udfile "libapache2-mod-php5/")
# (find-fline "/etc/init.d/apache2")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
sudo /etc/init.d/apache2 restart
# (find-fline "/var/www/")
# (find-fline "/var/www/foo.php")
# http://localhost/foo.php
# (kill-new "<? phpinfo(); ?>")
# (find-fline "/var/www/info.php")
# http://localhost/info.php
# http://localhost/info.php?foo=bar
# «php-raphael» (to ".php-raphael")
# (find-fline "/var/www/array.php")
# http://localhost/array.php
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
php /var/www/array.php
# http://localhost/form.php
http://localhost/info.php
# (find-status "php-elisp")
# (find-vldifile "php-elisp.list")
# (find-udfile "php-elisp/")
#####
#
# HTTP Header (for content-type, redirect, etc)
# 2012may31
#
#####
# «http-header» (to ".http-header")
# (find-phpfuncw3m "header.html")
# http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
# http://www.w3schools.com/php/func_http_header.asp
<?
// http://localhost/plain.php
// (find-fline "/var/www/plain.php")
header('Content-type: text/plain');
echo "Hello\nBye";
?>
#####
#
# php-http (supposedly like http-header, but hard to use)
# 2012may31
#
#####
# «php-http» (to ".php-http")
# (find-status "php-http")
# (find-vldifile "php-http.list")
# (find-udfile "php-http/")
# (find-fline "/usr/share/php/HTTP.php")
# (find-phpdocw3m "ref.http.html")
# (find-phpfuncw3m "http-redirect.html")
# (find-phpfuncw3m "http-send-content-type.html")
# (find-phpdocw3m "http.configuration.html")
# http://www.w3schools.com/php/php_ref_http.asp
#####
#
# php 5.6 on wheezy
# 2014jul25
#
#####
# «php-5.6-on-wheezy» (to ".php-5.6-on-wheezy")
# https://wiki.debian.org/DebianUnstable
# https://wiki.debian.org/DebianTesting
# https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F
# https://packages.debian.org/source/jessie/php5
# http://ftp.de.debian.org/debian/pool/main/p/php5/php5_5.6.0~rc2+dfsg-4.dsc
# http://ftp.de.debian.org/debian/pool/main/p/php5/php5_5.6.0~rc2+dfsg.orig.tar.xz
# http://ftp.de.debian.org/debian/pool/main/p/php5/php5_5.6.0~rc2+dfsg-4.debian.tar.xz
sudo apt-get build-dep php5
#*
rm -Rv ~/usrc/php5/
mkdir ~/usrc/php5/
cd $S/http/ftp.de.debian.org/debian/pool/main/p/php5/
cp -v php5_5.6.0~rc2+dfsg* ~/usrc/php5/
cd ~/usrc/php5/
dpkg-source -sn -x php5_5.6.0~rc2+dfsg-4.dsc
cd ~/usrc/php5/php5-5.6.0~rc2+dfsg/
dpkg-buildpackage -us -uc -b -rfakeroot |& tee odb
#*
# (find-fline "~/usrc/php5/")
* (eepitch-shell)
cd ~/usrc/php5/
sudo dpkg -i *.deb
#*
# (code-c-d "php5" "~/usrc/php5/php5-5.6.0~rc2+dfsg/")
# (find-php5file "")
http://serverfault.com/questions/22414/how-can-i-run-debian-stable-but-install-some-packages-from-testing
http://linuxaria.com/howto/how-to-install-a-single-package-from-debian-sid-or-debian-testing
#####
#
# php 5.5 on wheezy
# 2014jul25
#
#####
# «php-5.5-on-wheezy» (to ".php-5.5-on-wheezy")
# http://packages.dotdeb.org/dists/wheezy-php55/
# http://packages.dotdeb.org/dists/wheezy-php55/all/binary-i386/Packages
# http://packages.dotdeb.org/dists/wheezy-php55/php5/binary-i386/
apt-cache policy php5
# http://www.dotdeb.org/2013/11/19/php-5-5-6-for-debian-7-0-wheezy/
# (find-fline "/etc/apt/sources.list")
# deb http://packages.dotdeb.org wheezy all
# deb http://packages.dotdeb.org wheezy all
# (find-zsh "installeddebs | sort | grep php")
# (find-zsh "availabledebs | sort | grep php")
# (find-status "php-doc")
# (find-vldifile "php-doc.list")
# (find-udfile "php-doc/")
# (find-phpdocfile "")
# file:///usr/share/doc/php-doc/html/index.html
# file:///usr/share/doc/php-doc/html/indexes.html
#####
#
# php5-doc
# 2012may31 / 2014aug17
#
#####
# «php-doc» (to ".php-doc")
# (find-angg ".emacs" "php")
# (find-status "php-doc")
# (find-vldifile "php-doc.list")
# (find-udfile "php-doc/")
# (find-phpdocfile "")
# file:///usr/share/doc/php-doc/html/index.html
# file:///usr/share/doc/php-doc/html/indexes.html
#####
#
# php5-cli
# 2014aug16
#
#####
# «php5-cli» (to ".php5-cli")
# (find-angg ".emacs" "php")
# http://unix.stackexchange.com/questions/10976/how-do-i-install-a-php-cli-with-a-usable-interactive-prompt-on-debian-wheezy
# http://schlueters.de/blog/archives/133-Now-in-trunk-Improved-interactive-shell.html
# (find-status "php5-cli")
# (find-vldifile "php5-cli.list")
# (find-udfile "php5-cli/")
# (find-status "php5-readline")
# (find-vldifile "php5-readline.list")
# (find-udfile "php5-readline/")
# (find-man "1 php5")
# (find-fline "/etc/php5/mods-available/")
# (find-fline "/etc/php5/mods-available/readline.ini")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
php5 -a
echo "Hello\n";
#####
#
# require and include
# 2014aug17
#
#####
# «require-and-include» (to ".require-and-include")
# http://php.net/manual/en/function.require.php
# file:///usr/share/doc/php-doc/html/function.include.html
# file:///usr/share/doc/php-doc/html/function.include-once.html
# file:///usr/share/doc/php-doc/html/function.require.html
# file:///usr/share/doc/php-doc/html/function.require-once.html
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cat > /tmp/foobar.php <<'%%%'
<?php
// file:///usr/share/doc/php-doc/html/language.types.intro.html
$abcd = "ABCD\n";
print("Foo\n");
print("Bar\n");
?>
%%%
php5 -f /tmp/foobar.php
* (eepitch-php)
* (eepitch-kill)
* (eepitch-php)
print($abcd);
include "/tmp/foobar.php";
print($abcd);
require "/tmp/foobar.php";
print($abcd);
// «include_path» (to ".include_path")
// file:///usr/share/doc/php-doc/html/function.set-include-path.html
* (eepitch-php)
* (eepitch-kill)
* (eepitch-php)
include "foobar.php";
set_include_path("/tmp/");
include "foobar.php";
#####
#
# include_path
# 2014aug17
#
#####
# file:///usr/share/doc/php-doc/html/function.echo.html
# file:///usr/share/doc/php-doc/html/function.print.html
# (find-zsh "dmissing php | grep require")
# (find-man "php5")
* (eepitch-php)
* (eepitch-kill)
* (eepitch-php)
echo $include_path, '\n';
echo 22, "\n", 33;
#####
#
# The Facebook SDK for PHP
# 2014aug16
#
#####
# «facebook-sdk» (to ".facebook-sdk")
# (find-es "facebook" "php")
# (find-angg ".emacs" "php")
# (find-phpfbfile "")
# (find-phpfbsrcfile "")
# https://developers.facebook.com/docs/php
# https://developers.facebook.com/docs/reference/php/4.0.0
# https://developers.facebook.com/docs/php/gettingstarted/4.0.0
# https://github.com/facebook/facebook-php-sdk-v4/archive/4.0-dev.zip
# file:///usr/share/doc/php-doc/html/index.html
# file:///usr/share/doc/php-doc/html/indexes.html
# file:///usr/share/doc/php-doc/html/function.defined.html
# file:///usr/share/doc/php-doc/html/language.constants.html
# (find-es "php" "include_path")
# (find-phpfbfile "")
# (find-pfbphfile "autoload.php")
# (find-phpfbfile "autoload.php" "require $file;")
# (find-phpfbfile "autoload.php" "$base_dir =")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
// Preparation: run this on a shell.
//
// cd /tmp/
// wget https://github.com/facebook/facebook-php-sdk-v4/archive/4.0-dev.zip
// unzip /tmp/4.0-dev.zip -d /tmp/
define("FACEBOOK_SDK_V4_DIR", "/tmp/facebook-php-sdk-v4-4.0-dev/");
define("FACEBOOK_SDK_V4_SRC_DIR", FACEBOOK_SDK_V4_DIR . "src/Facebook/");
set_include_path(FACEBOOK_SDK_V4_SRC_DIR);
require FACEBOOK_SDK_V4_DIR . "autoload.php";
use Facebook\FacebookSession;
FacebookSession::setDefaultApplication('app-id', 'app-secret');
// ^ this last line yield the error
// PHP Fatal error: Class 'FacebookSession' not found in php shell code on line N
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/facebook-php-sdk-v4-4.0-dev/
cd /tmp/
cp -v $S/https/github.com/facebook/facebook-php-sdk-v4/archive/4.0-dev.zip .
# wget https://github.com/facebook/facebook-php-sdk-v4/archive/4.0-dev.zip
rm -Rv /tmp/facebook-php-sdk-v4-4.0-dev/
unzip /tmp/4.0-dev.zip
cd /tmp/facebook-php-sdk-v4-4.0-dev/
cat > /tmp/test.php <<'%%%'
<?php
define("FACEBOOK_SDK_V4_DIR", "/tmp/facebook-php-sdk-v4-4.0-dev/");
define("FACEBOOK_SDK_V4_SRC_DIR", FACEBOOK_SDK_V4_DIR . "src/Facebook/");
set_include_path(FACEBOOK_SDK_V4_SRC_DIR);
require FACEBOOK_SDK_V4_DIR . "autoload.php";
use Facebook\FacebookSession;
FacebookSession::setDefaultApplication('app-id', 'app-secret');
?>
%%%
php5 /tmp/test.php
# (find-man "php5")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv ~/usrc/facebook-php-sdk-v4-4.0-dev/
unzip $S/https/github.com/facebook/facebook-php-sdk-v4/archive/4.0-dev.zip \
-d ~/usrc/
cd ~/usrc/facebook-php-sdk-v4-4.0-dev/
(defun eejump-99 ()
(find-
(find-efunction 'eejump-99*))
* (eepitch-php)
* (eepitch-kill)
* (eepitch-php)
require "/home/edrx/PHP/load_fb_sdk.php";
use Facebook\FacebookSession;
FacebookSession::setDefaultApplication('app-id', 'app-secret');
// If you already have a valid access token:
$session = new FacebookSession('access-token');
// If you're making app-level requests:
$session = FacebookSession::newAppSession();
// To validate the session:
try {
$session->validate();
} catch (FacebookRequestException $ex) {
// Session not valid, Graph API returned an exception with the reason.
echo $ex->getMessage();
} catch (\Exception $ex) {
// Graph API returned info, but it may mismatch the current app or have expired.
echo $ex->getMessage();
}
// file:///usr/share/doc/php-doc/html/language.constants.html
// (find-phpfbfile "")
// (find-phpfbfile "docs/FacebookSession.fbmd")
define("FACEBOOK_SDK_V4_DIR", "/home/edrx/usrc/facebook-php-sdk-v4-4.0-dev/");
define("FACEBOOK_SDK_V4_SRC_DIR", FACEBOOK_SDK_V4_DIR . "src/Facebook/");
set_include_path(FACEBOOK_SDK_V4_SRC_DIR);
require FACEBOOK_SDK_V4_DIR . "autoload.php";
use Facebook\FacebookSession;
require "FacebookSession.php";
require FACEBOOK_SDK_V4_DIR . "autoload.php";
set_include_path(FACEBOOK_SDK_V4_SRC_DIR);
require "FacebookSession.php";
$session = new FacebookSession('access token here');
$request = new FacebookRequest($session, 'GET', '/me');
$response = $request->execute();
print($response);
$graphObject = $response->getGraphObject();
echo FACEBOOK_SDK_V4_SRC_DIR . "foo" . "\n";
require FACEBOOK_SDK_V4_SRC_DIR . "autoload";
echo FACEBOOK_SDK_V4_SRC_DIR . "autoload.php" . "\n";
echo FACEBOOK_SDK_V4_SRC_DIR, "\n";
$fb = "FACEBOOK_SDK_V4_SRC_DIR";
define("FACEBOOK_SDK_V4_SRC_DIR", $fb);
define("FACEBOOK_SDK_V4_SRC_DIR",
"/home/edrx/usrc/facebook-php-sdk-v4-4.0-dev/src/Facebook/");
echo FACEBOOK_SDK_V4_SRC_DIR, "\n";
set_include_path("/home/edrx/usrc/facebook-php-sdk-v4-4.0-dev/src/Facebook/");
require "FacebookSession.php";
$session = new FacebookSession('access token here');
/* (find-fbphpfile "src/Facebook/FacebookSession.php")
*/
$request = new FacebookRequest($session, 'GET', '/me');
$response = $request->execute();
print($response);
$graphObject = $response->getGraphObject();
# http://stackoverflow.com/questions/13265080/wget-to-https-graph-facebook-com-cocacola-error-connection-time-out
# http://stackoverflow.com/questions/6821696/wget-for-fetching-facebook-profile-friend-pages
# http://mongoinsideout.blogspot.be/2014/02/wget-or-xmlhttprequest.html
# http://mongoinsideout.blogspot.com.br/2014/03/facebook.html
# (find-zsh "availabledebs | sort | grep mongo")
# (find-fline "~/snarf/https/developers.facebook.com/docs/")
#####
#
# autoloading
# 2014aug18
#
#####
# «autoload» (to ".autoload")
# http://uk1.php.net/autoload
# http://php.net/get_loaded_extensions
#####
#
# errors
# 2014aug18
#
#####
# «errors» (to ".errors")
<edrx> Naktibalda: I am reading the docs for error_reporting and
display_errors.
#####
#
# The Boris REPL
# 2014aug24
#
#####
# «boris» (to ".boris")
# http://www.sitepoint.com/say-hello-to-boris-a-better-repl-for-php/
# http://thechangelog.com/meet-boris-a-tiny-repl-for-php/
# http://pem-musing.blogspot.com.br/2014/02/meet-boris-php-too-has-its-repl.html
# https://www.youtube.com/watch?v=xB5fJoX-dws Boris: A Tiny Robust REPL for PHP
# https://www.youtube.com/watch?v=wjkDdYv8au8
#####
#
# naofo.de
# 2016apr10
#
#####
# «naofo.de» (to ".naofo.de")
# https://github.com/naofode/naofo.de
# (find-git-links "https://github.com/naofode/naofo.de" "naofode")
# (code-c-d "naofode" "~/usrc/naofo.de/")
# (find-naofodefile "")
# (find-naofodefile "README.md")
# (find-naofodefile "README.md" "http://wkhtmltopdf.org/")
# http://wkhtmltopdf.org/
# http://code.google.com/p/wkhtmltopdf/
# https://github.com/wkhtmltopdf/wkhtmltopdf
# (find-available "wkhtmltopdf")
# (find-status "wkhtmltopdf")
# (find-vldifile "wkhtmltopdf.list")
# (find-udfile "wkhtmltopdf/")
# (find-man "1 wkhtmltopdf")
https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
# Local Variables:
# coding: utf-8-unix
# End: