[PHP] PHP Data Mining/Data Scraping

2007-05-20 Thread Shannon Whitty
Hi,

I'm looking for a piece of software or coding that will let me post a form 
to another URL, accept the response, search it for a specific "success" 
string and then let me continue processing the rest of my program.

I want to accept queries on behalf of my supplier, forward it to them behind 
the scenes, accept their response and display it within my website.

Has anyone had any experience with this?  Is there a simple, basic utility 
to let me do this?

I was kind of hoping I could avoid developing it myself.

Thanks
Shannon 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: PHP Data Mining/Data Scraping

2007-05-23 Thread Shannon Whitty
We are planning to eventually develop a web service and communicate in this 
fashion but i want to get something up quiclly that is operational while we 
spec the project in full.

Thanks

Shannon

""itoctopus"" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> In case you have no control on the other URL, then CURL is probably your 
> best solution.
> Otherwise, a better way to do it is probably to interact with a web 
> service installed on the other website.
>
> -- 
> itoctopus - http://www.itoctopus.com
> ""Shannon Whitty"" <[EMAIL PROTECTED]> wrote in message 
> news:[EMAIL PROTECTED]
>> Hi,
>>
>> I'm looking for a piece of software or coding that will let me post a 
>> form to another URL, accept the response, search it for a specific 
>> "success" string and then let me continue processing the rest of my 
>> program.
>>
>> I want to accept queries on behalf of my supplier, forward it to them 
>> behind the scenes, accept their response and display it within my 
>> website.
>>
>> Has anyone had any experience with this?  Is there a simple, basic 
>> utility to let me do this?
>>
>> I was kind of hoping I could avoid developing it myself.
>>
>> Thanks
>> Shannon 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] PHP Data Mining/Data Scraping

2007-05-23 Thread Shannon Whitty
THanks,

I will have far to much data to append to a GET request so a POST is the 
best option I think.


"Myron Turner" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
>
>> On Sat, May 19, 2007 10:22 pm, Shannon Whitty wrote:
>>
>>> I'm looking for a piece of software or coding that will let me post a
>>> form
>>> to another URL, accept the response, search it for a specific
>>> "success"
>>> string and then let me continue processing the rest of my program.
>>>
>>
>> http://php.net/curl
>>
>>
>>> I want to accept queries on behalf of my supplier, forward it to them
>>> behind
>>> the scenes, accept their response and display it within my website.
>>>
>>> Has anyone had any experience with this?  Is there a simple, basic
>>> utility
>>> to let me do this?
>>>
>>> I was kind of hoping I could avoid developing it myself.
>>>
> As I understand this, you want to create a web page of your own which 
> accepts requests for customers who are going to order products from your 
> supplier.  You want to have a form on your page which accepts their 
> requests, then forward the form data on to your supplier's web site, where 
> presumably it will be processed.  Then you want to retrieve the response 
> from your supplier's page, and display the result on your own web page. 
> You suggest that the response string for "success" is relatively stable 
> and that this string is this what you want to search for in the response.
>
> This doesn't sound like a very complicated problem.  You can do this 
> either using Ajax or not.  The basic solution is the same.  You have a 
> script on the server which accepts the form data from your page and 
> re-sends it to the supplier's site.  If your supplier's site accepts form 
> data using GET, then you can simply create a url with the form data 
> attached in a query string:
>
> http://my.supplier.com?fdata_1=data1&fdata_2=data2
>
> Send this url to your suppler using file_get_contents:
>
>  $return_string = 
> file_get_contents("http://my.supplier.com?fdata_1=data1&fdata_2=data2";);
>
> This will return the html file as a string which you can then parse with 
> preg_match() for the 'success' string.
> The problem is more involved if your supplier doesn't accept GET but only 
> accepts POST.  Then you  have to use either curl or fsockopen to post your 
> data.   I've tested the following fockopen script and it worked for me:
>
>  $fp = fsockopen("my.supplier.com", 80, $errno, $errstr, 30);
> if (!$fp) {
>echo "$errstr ($errno)\n";
> } else {
>$out = "POST http://my.supplier.com/form_page.html / HTTP/1.1\r\n";
>$out .= "Host: my.supplier.com\r\n";
>
>$post = "form_data_1=data_1&formdata_2=data_2";
>$len = strlen($post);
>$post .= "\r\n";
>$out .="Content-Length: $len\r\n";  $out .= "Connection: 
> Close\r\n\r\n";
>
>$out .= $post;
>
>fwrite($fp, $out);
>$result= "";
>while (!feof($fp)) {
>$result .=  fgets($fp, 128);
>}
>fclose($fp);
>echo $result;
>
>
> }
> ?>
>
> You have to adhere to the above sequence.  The posted data comes last and 
> it is preceded by a content-length header which tells the receiving server 
> how long the posted data is.  The returned result is the html page 
> returned from your posted request.
>
> -- 
>
> _
> Myron Turner
> http://www.room535.org
> http://www.bstatzero.org
> http://www.mturner.org/XML_PullParser/ 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] PHP Data Mining/Data Scraping

2007-05-23 Thread Shannon Whitty
THanks,

I will have far to much data to append to a GET request so a POST is the
best option I think.


"Myron Turner" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
>
>> On Sat, May 19, 2007 10:22 pm, Shannon Whitty wrote:
>>
>>> I'm looking for a piece of software or coding that will let me post a
>>> form
>>> to another URL, accept the response, search it for a specific
>>> "success"
>>> string and then let me continue processing the rest of my program.
>>>
>>
>> http://php.net/curl
>>
>>
>>> I want to accept queries on behalf of my supplier, forward it to them
>>> behind
>>> the scenes, accept their response and display it within my website.
>>>
>>> Has anyone had any experience with this?  Is there a simple, basic
>>> utility
>>> to let me do this?
>>>
>>> I was kind of hoping I could avoid developing it myself.
>>>
> As I understand this, you want to create a web page of your own which
> accepts requests for customers who are going to order products from your
> supplier.  You want to have a form on your page which accepts their
> requests, then forward the form data on to your supplier's web site, where
> presumably it will be processed.  Then you want to retrieve the response
> from your supplier's page, and display the result on your own web page.
> You suggest that the response string for "success" is relatively stable
> and that this string is this what you want to search for in the response.
>
> This doesn't sound like a very complicated problem.  You can do this
> either using Ajax or not.  The basic solution is the same.  You have a
> script on the server which accepts the form data from your page and
> re-sends it to the supplier's site.  If your supplier's site accepts form
> data using GET, then you can simply create a url with the form data
> attached in a query string:
>
> http://my.supplier.com?fdata_1=data1&fdata_2=data2
>
> Send this url to your suppler using file_get_contents:
>
>  $return_string =
> file_get_contents("http://my.supplier.com?fdata_1=data1&fdata_2=data2";);
>
> This will return the html file as a string which you can then parse with
> preg_match() for the 'success' string.
> The problem is more involved if your supplier doesn't accept GET but only
> accepts POST.  Then you  have to use either curl or fsockopen to post your
> data.   I've tested the following fockopen script and it worked for me:
>
>  $fp = fsockopen("my.supplier.com", 80, $errno, $errstr, 30);
> if (!$fp) {
>echo "$errstr ($errno)\n";
> } else {
>$out = "POST http://my.supplier.com/form_page.html / HTTP/1.1\r\n";
>$out .= "Host: my.supplier.com\r\n";
>
>$post = "form_data_1=data_1&formdata_2=data_2";
>$len = strlen($post);
>$post .= "\r\n";
>$out .="Content-Length: $len\r\n";  $out .= "Connection:
> Close\r\n\r\n";
>
>$out .= $post;
>
>fwrite($fp, $out);
>$result= "";
>while (!feof($fp)) {
>$result .=  fgets($fp, 128);
>}
>fclose($fp);
>echo $result;
>
>
> }
> ?>
>
> You have to adhere to the above sequence.  The posted data comes last and
> it is preceded by a content-length header which tells the receiving server
> how long the posted data is.  The returned result is the html page
> returned from your posted request.
>
> -- 
>
> _
> Myron Turner
> http://www.room535.org
> http://www.bstatzero.org
> http://www.mturner.org/XML_PullParser/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] PHP Data Mining/Data Scraping

2007-05-23 Thread Shannon Whitty
THanks,

I will have far to much data to append to a GET request so a POST is the
best option I think.


"Myron Turner" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
>
>> On Sat, May 19, 2007 10:22 pm, Shannon Whitty wrote:
>>
>>> I'm looking for a piece of software or coding that will let me post a
>>> form
>>> to another URL, accept the response, search it for a specific
>>> "success"
>>> string and then let me continue processing the rest of my program.
>>>
>>
>> http://php.net/curl
>>
>>
>>> I want to accept queries on behalf of my supplier, forward it to them
>>> behind
>>> the scenes, accept their response and display it within my website.
>>>
>>> Has anyone had any experience with this?  Is there a simple, basic
>>> utility
>>> to let me do this?
>>>
>>> I was kind of hoping I could avoid developing it myself.
>>>
> As I understand this, you want to create a web page of your own which
> accepts requests for customers who are going to order products from your
> supplier.  You want to have a form on your page which accepts their
> requests, then forward the form data on to your supplier's web site, where
> presumably it will be processed.  Then you want to retrieve the response
> from your supplier's page, and display the result on your own web page.
> You suggest that the response string for "success" is relatively stable
> and that this string is this what you want to search for in the response.
>
> This doesn't sound like a very complicated problem.  You can do this
> either using Ajax or not.  The basic solution is the same.  You have a
> script on the server which accepts the form data from your page and
> re-sends it to the supplier's site.  If your supplier's site accepts form
> data using GET, then you can simply create a url with the form data
> attached in a query string:
>
> http://my.supplier.com?fdata_1=data1&fdata_2=data2
>
> Send this url to your suppler using file_get_contents:
>
>  $return_string =
> file_get_contents("http://my.supplier.com?fdata_1=data1&fdata_2=data2";);
>
> This will return the html file as a string which you can then parse with
> preg_match() for the 'success' string.
> The problem is more involved if your supplier doesn't accept GET but only
> accepts POST.  Then you  have to use either curl or fsockopen to post your
> data.   I've tested the following fockopen script and it worked for me:
>
>  $fp = fsockopen("my.supplier.com", 80, $errno, $errstr, 30);
> if (!$fp) {
>echo "$errstr ($errno)\n";
> } else {
>$out = "POST http://my.supplier.com/form_page.html / HTTP/1.1\r\n";
>$out .= "Host: my.supplier.com\r\n";
>
>$post = "form_data_1=data_1&formdata_2=data_2";
>$len = strlen($post);
>$post .= "\r\n";
>$out .="Content-Length: $len\r\n";  $out .= "Connection:
> Close\r\n\r\n";
>
>$out .= $post;
>
>fwrite($fp, $out);
>$result= "";
>while (!feof($fp)) {
>$result .=  fgets($fp, 128);
>}
>fclose($fp);
>echo $result;
>
>
> }
> ?>
>
> You have to adhere to the above sequence.  The posted data comes last and
> it is preceded by a content-length header which tells the receiving server
> how long the posted data is.  The returned result is the html page
> returned from your posted request.
>
> -- 
>
> _
> Myron Turner
> http://www.room535.org
> http://www.bstatzero.org
> http://www.mturner.org/XML_PullParser/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] PHP Data Mining/Data Scraping

2007-05-23 Thread Shannon Whitty
THanks,

That's what I thought...

I really only need to check for one value = "success" - anything else should 
redirect back to the form entry page and display whatever result has been 
returned from the remote site.

cUrl should be able to differentiate between a connection and an application 
failure shouldn't it?

The way I see it:

1: If I can connect to port80 THEN continue ELSE goto:6
2: If I get a response THEN continue ELSE goto:6
3: If response contains "result tags" THEN continue ELSE goto:6
4: If "result tags" contains "success" THEN goto:5 ELSE goto:7
5: Display "success" and finish
6: Display connection error and resort to email and finish
7: Reload form and display error returned within "result tags"

thanks
Shannon

""Richard Lynch"" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> On Sat, May 19, 2007 10:22 pm, Shannon Whitty wrote:
>> I'm looking for a piece of software or coding that will let me post a
>> form
>> to another URL, accept the response, search it for a specific
>> "success"
>> string and then let me continue processing the rest of my program.
>
> http://php.net/curl
>
>> I want to accept queries on behalf of my supplier, forward it to them
>> behind
>> the scenes, accept their response and display it within my website.
>>
>> Has anyone had any experience with this?  Is there a simple, basic
>> utility
>> to let me do this?
>>
>> I was kind of hoping I could avoid developing it myself.
>
> Search for PHP curl examples online, and you should find the code
> simple enough to copy/paste and alter to taste...
>
> It won't be quite as easy as "install forum X" but it shouldn't kill
> you either...
>
> The tricky bit is to figure out what to do when your result from the
> supplier is not "success" nor "failure" but their site has gone down
> and you've got some weird answer you've never seen before...
>
> Or when they alter their web application and then yours breaks because
> of it...
>
> You'll end up taking a simple 5-line program and adding about 50 lines
> of "what if" error handling if you do this right...  Or leave it at 5
> lines and pray nothing goes wrong :-)
>
> -- 
> Some people have a "gift" link here.
> Know what I want?
> I want you to buy a CD from some indie artist.
> http://cdbaby.com/browse/from/lynch
> Yeah, I get a buck. So? 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php