We need a single CGI script written in PHP that will be used to analyse web-pages for a large number of search engine related attributes (keyword density, page-rank etc). The script will be passed a number of arguments using POST, including the URL of the page to analyse, a key phrase, synonymous words and related words which will be used as part of the analysis. The script will then get the page source using CURL, perform a detailed analysis and produce a number of SQL update queries which when executed would store the information obtained during the analysis. The update queries will then be combined into a single text string and either be stored as text in a simple MySQL database or returned as text to the caller (i.e. the queries will not be executed by the script itself, just created so they can be executed later on a different machine).
Some of the steps of the analysis process will require the use of CURL to access web-based utilities (e.g. to check page-rank, back-links etc), where the HTML source of the returned data need to be parsed to extract the relevant information. In these cases we will supply the location of a utility that can be used and basic instructions on how to use it if necessary, but you will have to figure out the best way to parse the returned data to extract the actual information.
The script must be well structured, easy to maintain or extend and comments must be used to explain all steps taken (however separate documentation to explain the working of the script will not be required). The source code should be formatted according to standard PHP conventions as defined at [login to view URL] All code, PHP or otherwise, produced as part of this project will be owned and copyright by WebDynamic Systems and MUST be handed over to WebDynamic Systems in their entirety at the end of the project. No part of the script may be used by any other individual or organisation for any purpose.
As part of the development process you will need to create the sample data used to test the script. This step will require our examination and approval of the test data, as well as verification of the test results.
While we will be involved to some degree in stages of the development process for (quality assurance purposes) we have no intentions of delaying the progress unnecessarily - we would definitely like to see the job completed ASAP.