vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Help needed with parsing (https://vborg.vbsupport.ru/showthread.php?t=31876)

Saint 10-30-2001 10:15 PM

am new to php and needed help in parsing some html code from an external webpage (with consent from owner)
and outputing it on the index.php of vB.

Not parsing the whole webpage though
just some of it.

Any anyone help?

MrLister 10-31-2001 01:01 AM

post the code here.... you'll get much more response... if the code is too big then post the problem area.

Mark Hensler 10-31-2001 05:13 AM

This will involve pattern matching. You'll need to know what's before and after the text you want.

If you want to read docs on some of the functions you might use...
eregi(), file(), preg_match()

Saint 10-31-2001 12:26 PM

Quote:

Originally posted by MrLister
post the code here.... you'll get much more response... if the code is too big then post the problem area.
The HTML code or the php code?

I know nothing about PHP, am still learning. :(

If it's the HTML code, yes I can paste it here.

Saint 10-31-2001 01:16 PM

This is the HTML from the site I want to parse

<TABLE WIDTH="70%" >
<TR>
<TD><FONT SIZE=+1><a name="patch">Patch Server:</a></FONT></TD>
<TD><IMG SRC="http://ultima.lightning.net/uo/img/grnball.gif" HEIGHT=17 WIDTH=17 ALIGN=TOP> UP! for 57h 20m 06s</TD>
</TR>
<TR>
<TD><FONT SIZE=+1><a name="login">Login Server:</a></FONT></TD>
<TD><IMG SRC="http://ultima.lightning.net/uo/img/grnball.gif" HEIGHT=17 WIDTH=17 ALIGN=TOP> UP! for 97h 49m 06s</TD>
</TR>
<TD><FONT SIZE=+1><a name="AOLLegends">AOL Legends:</a></FONT></TD>
<TD><IMG SRC="http://ultima.lightning.net/uo/img/grnball.gif" HEIGHT=17 WIDTH=17 ALIGN=TOP> UP! for 1h 31m 06s&nbsp;&nbsp;<A HREF="http://ultima.lightning.net/uo/en/history/AOLLegends.html"><FONT SIZE="-2">[details]</FONT></a></TD>
</TR>


Note that I only need to parse some of it not the whole HTML so some stripping need to be done.
i.e I only need to parse the code I highlighted in red above.
The page that I'm parsing the HTML from refreshed every 60 secs.

MrLister 10-31-2001 01:38 PM

As Mark already mentioned try looking into eregi(), file(), preg_match() on php.net and i'm pretty sure there are a few scripts that do something like this... you could try and look them up at hotscripts.com and look at the source and get an idea from there.

Saint 10-31-2001 01:55 PM

Ok thanks

Mark Hensler 10-31-2001 03:03 PM

What you'll be doing is pattern matching. So, you have to know what is surrounding the text you want.

Do you only want the those two pairs in red?
Or, do you want anything in this pattern:
<TR>
<TD><FONT SIZE=+1><a name="login">TEXT TEXT TEXT</a></FONT></TD>
<TD>TEXT TEXT TEXT HEIGHT=17 WIDTH=17 ALIGN=TOP> UP! for 97h 49m 06s</TD>
</TR>

When your pattern matching, you want to be very specific.

Saint 10-31-2001 07:39 PM

I just want the 2 pair in red.

In total there's about 14 pairs of that on that page.

But output differently on my page,
I'll want to replace his image file with my own image file.
But i need to know which image file is on his page at that time cos there's 2 type, a grnball.gif and a redball.gif

I'll name mine the same too, but will be of different pic.

Thanks for replying Mark.

Mark Hensler 10-31-2001 08:12 PM

Wait.. do you want only those 2 pairs (login server, aol legends), or all 14 pairs? (I'm looking at pairs as the text and image)

Some "Quickie Code" (untested)
PHP Code:

// suck the remote file into a string
$remote_site join(''file("http://remote.domain.com/index.php") );

preg_match_all(
    
"|<tr>(.*)<a name=\"(.*)\">(.*):</a>(.*)<IMG SRC=\"(.*)\"(.*)</tr>|Ui",
    
$remote_site,$matches);

for (
$i=0$i<count($matches[3]); $i++) {
    
$name $matches[3];
    
$image $matches[5];
    if (
strstr($image,'grnball.gif')) {
        
// green ball
    
}
    else {
        
// red ball
    
}
    
    
// do your thingy
    


functions docs: file(), join(), preg_match_all(), strstr()

Good Luck,


All times are GMT. The time now is 10:02 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01246 seconds
  • Memory Usage 1,747KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete