PHP (recursive acronym for PHP: Hypertext Preprocessor)
- php home: http://www.php.net
- tutorial: http://ch2.php.net/tut.php
- manual: http://www.php.net/manual
Meine php Beispiele sind unter der hompage unter inf/php abgelegt - dann kann man über apache2 drauf zugreifen Inf:php/e01Hello.php
- Fehler Ouptut in Browser: /etc/php/7.2/apache2/php.ini ==> display_errors = On
Intro
- php läuf auf dem Server, z.B. Apache und die sourcefiles sind eine Mischung von html und php: Inf:php/e01Hello.php. Man kann auch mitten in einem php statement zurück ins html springen (z.B. für if else). Strings gibts mit Apostroph oder quote, StringKonkatinierung mit Punkt.
- PHP ist nahtlos integriert mit html Forms, man kann ein php script als action der Form angeben: Inf:php/e02Form.htm mit der Action Inf:php/e02Action.php, die aufgerufen wird, wenn man die Form submitted. Die Funktion htmlspecialchars übersetzt HTML-Spezialzeichen in die entsprechende Symbole etc.
- Noch einfacher wirds, wenn man die Form und die Action inselbe php versort: Inf:php/e03Form.php. Und mit diesem kleinen Ding kann ich schon die perl like regular expressions ausprobieren. Fehlermeldungen, wegen ungültigen Argumenten der Funktionen, landen direkt im HTML.
- regExpression mit /e evaluieren den replace text als php, z.B.
- preg_replace('/^(.*)$/e, ' . preg_replace(array('/a/', '/b/'), array('A', 'B'), '$1') . ', 'abc abc aabbccabc')
- übersetzt alle a und b auf Grossbuchstaben
- der assoziative array $_GET enthält die url parameter: Inf:php/e05GetServer.php?parameter eins&pZwei=value of parm 2&drittens&vier=4.Schluss und $_SERVER enthält weitere Infos
- damit kann man z.B. Directories und Files anzeigen Inf:php/dir.php?.
- php hat viele Optionen und Erweiterungen Inf:php/e07phpinfo.php
- eine form um file zu lesen und schreiben Inf:php/e08FormReadWrite.php (mit file_get/put_contens)
- eine form um file zu lesen und schreiben Inf:php/e08FReadWrite.php (mit fgets / fputs loop)
- diverse language features Inf:php/e09Div.php readfile and mime types
php helper
- Inf:php/log.php : how to ensure error logging - how to detect where we are ...
- env.php: PHP Environment: args, output, errhandling
- Inf:php/h02AssBT.php Assert Backtrace
php language
- operators Inf:php/e11ops.php and bit operators Inf:php/e11bit.php
- ref Inf:php/e12ref.php
- array Inf:php/e13array.php
- generators and coroutines Inf:php/e14genCorou.php
- includes Inf:php/e15inc.php
- objects and references Inf:php/e16obj.php
- stream, temp etc Inf:php/e17stream.php
- geschachtelte Funktionen und Closures Inf:php/e19Closure.php
- define Inf:php/e20define.php
- visibility scopes Inf:php/e21scope.php
- redirect standard output Inf:php/e22redir.php
- fiber (separate fullstack / coroutine) Inf:php/e23fiber.php, timing Inf:php/e23fibTiming.php
- Inf:php/phar.php access phar
etc
- Inf:php/root.php
- urlHref.php: read url, analyze HTML for <a href
- Inf:php/ckEdit.php - ckEditor beispiel
- Inf:php/phar.php access phar
- send mail in linux mint Inf:php/sendMail.php - ich konnte sendmail auf wk13 noch nicht zum laufen bringen ...
- Inf:php/sess.php - php session handling
- Inf:php/f01Socket.php - Socket: Sever mit php, Client mit javascript
- Inf:php/f02Fetch.php - javascript fetch - to get html promise
Cloud
- google drive Inf:php/godrList.php
DB
- adodb Inf:php/adodb0.php
- mySql * Inf:php/mysql0.php mit pdo
- sqlite3 Inf:php/sqliteA.php
- Achtung php-sqlite3 muss installiert sein. Berechtigung für apache2 auf RW, per default nur auf read. Hostar kann das zurzeit nicht (auch laut Auskunft) funktioniert aber unter php7!
weitere Beispiele ⇒ algorithms
Infos
PHP Interfaces
- SAPI = server application programming interface (SAPI) is the direct module interface to web servers such as the Apache HTTP Server, Microsoft IIS, and Oracle iPlanet Web Server. In other words, SAPI is an application programming interface (API) provided by the web server to help other developers in extending the web server capabilities.
- Microsoft uses the term Internet Server Application Programming Interface (ISAPI), and the defunct Netscape web server used the term Netscape Server Application Programming Interface (NSAPI) for the same purpose.[1]
- As an example, PHP has a direct module interface called SAPI for different web servers;[2] in the case of PHP 5 and Apache 2.0 on Windows, it is provided in the form of a DLL ...
- CGI Common Gateway Interface is an interface specification that enables web servers to execute an external program to process HTTP/S user requests. Such programs are often written in a scripting language and are commonly referred to as CGI scripts, but they may include compiled programs.A typical use case occurs when a web user submits a web form on a web page that uses CGI. The form's data is sent to the web server within an HTTP request with a URL denoting a CGI script. The web server then launches the CGI script in a new computer process, passing the form data to it. The output of the CGI script, usually in the form of HTML, is returned by the script to the Web server, and the server relays it back to the browser as its response to the browser's request.
- CLI = Command Line Interface. The main focus of CLI SAPI is for developing shell applications with PHP
Issues
php 7 converted most Errors into throwables, that can be catched.
One exception are failed String conversions (e.g. (string) function () {}), which raises an error called fatal catchable. however ist not catchable. As reads bug 72948:
- This case has been intentionally omitted, because throwing exceptions from string conversions is ostensibly unsafe (in practice you can simply convert the recoverable fatal to an exception using an error handler, so it's sort of a moot argument).
- Btw, we should get rid of any references to "catchable" fatal errors (if they still exist) in favor of "recoverable" fatal errors.