A ) sure, there are jobs with steps in them, which are supposed to run programs, which for themselves can be parametrized with variants. The flexibility is very good. check SM36 and SM37 for that.
B ) Do not know. check C ).
You should change the approach. The SQL Server can offer a module, which is called from the SAP-System in an RFC Destination ( SM59, TCP/IP connection, Registered Serverprogramm ). If set up via job, the SAP will make a call to the sql server, which could offer a php module to be accessed via rfc call ( tcp/ip ) . The data is transferred by sap with the help of calling a module inside the sql server. Data is translated as tables, if You like so. You would not need to save a file in between the process. If Your sap calls the other module, and it returns with error, then and only then You could create a file ( or buffer in db table to transfer the data the next time). C) If You directly pass the data to Your sql server, then there You can decide via php, if the data is to drop or to insert.
You should read here for further details:
http://www.sdn.sap.com/irj/sdn/index?rid=/webcontent/uuid/5d9fb155-0b01-0010-8e8a-d8703df8bb9e