

matthewturland.com/presentations

#longhornphp






Blog Post circa 2010


Blog Post circa 2010


Chrome / Firefox: Right-click > View Page Source



XmlHttpRequest (XHR)assign(), reload() or replace() methods of Location


POST /L911/Service2.svc/getTrafficIncidents HTTP/2
Host: apps.lafayettela.gov
...

POST = method or operation
/L911/Service2.svc/getTrafficIncidents = Uniform Resource Identifier (URI)HTTP/2 = client protocol and versionHost = header nameapps.lafayettela.gov = header value... = request body

HTTP/2 = server protocol and version200 = status codeOK = status descriptioncache-control = header nameprivate = header value{"d":"..."} = response bodyProgrammers manipulate text the same way woodworkers shape wood. "The Pragmatic Programmer: Your Journey to Mastery, 20th Anniversary Edition" by David Thomas and Andrew Hunt




To use CSS selectors: symfony/css-selector
/ ... / - expression delimiters[ ... ] - character class or range+ - quantifier for 1 or more instances| - alternation\s - escape sequence for whitespace characters{2,} - quantifier for 2 or more instances


Google Play / GitHub Android, Data




frizz925/curl-parserExtract request data
Get request object
guzzlehttp/guzzlealexkart/curl-builder
Convert request to server request
Convert server request to cURL command
Tweak cURL command as needed
Run the cURL command
deviantintegral/harfrizz925/curl-parser due toguzzlehttp/psr7 versions

symfony/pantherdbrekelmans/bdi


monolog/monologsleep() to block executionsymfony/panther
symfony/panther source codephp-webdriver/webdriver source codeundetected-chromedriver source code
