Chris Andrews
asked on
Parsing out data and adding it to an array
I have an html file that I need to parse for information and put that information into a number of arrays.
Can you put together an example of how I can do this?
I've got something like this:
$string = <<<EOD
<html>
<body>
<div> various text </div>
<div class="container">
<h3 class="main">title here</h3> //text in bold would be $main[0]
<div> various text here</div>
<div class="listing">more text here</div> //text in bold would be $listing[0]
<div> various other text here</div>
<span class "wrap">wrap up text</span> //text in bold would be $wrap[0]
<div>end of this listing</div>
</div>
<div class="container">
<h3 class="main">title 2 here</h3> //text in bold would be $main[1]
<div> various text here</div>
<div class="listing">more text here 2</div> //text in bold would be $listing[1]
<div> various other text here</div>
<span class "wrap">wrap up text 2</span> //text in bold would be $wrap[1]
<div>end of this listing</div>
</div>
<div class="container">
<h3 class="main">title 3 here</h3> //text in bold would be $main[2]
<div> various text here</div>
<div class="listing">more text here 3</div> //text in bold would be $listing[2]
<div> various other text here</div>
<span class "wrap">wrap up text 3</span> //text in bold would be $wrap[2]
<div>end of this listing</div>
</div>
<div> various text</div>
</body>
</html>
EOD;
So for each <div class="container"> I need to pull out the text between:
<h3 class="main"> </h3>
<div class="listing"> </div>
<span class "wrap"> </span>
and make each into it's own array, so I can later say:
<p>
echo $main[0];'<br />';
echo $listing[0];'<br />';
echo $wrap[0];'<br />';
</p><p>
echo $main[1];'<br />';
echo $listing[1];'<br />';
echo $wrap[1];'<br />';
</p><p>
echo $main[1];'<br />';
echo $listing[1];'<br />';
echo $wrap[1];'<br />';
</p>
There will be 25 reiterations of this in all.
I know some php basics of course, but don't know how to put a while or for each thing nor how to pull the data out from between text... but I can certainly work off of a good example if you can put one together for me.
Thanks! Chris
Can you put together an example of how I can do this?
I've got something like this:
$string = <<<EOD
<html>
<body>
<div> various text </div>
<div class="container">
<h3 class="main">title here</h3> //text in bold would be $main[0]
<div> various text here</div>
<div class="listing">more text here</div> //text in bold would be $listing[0]
<div> various other text here</div>
<span class "wrap">wrap up text</span> //text in bold would be $wrap[0]
<div>end of this listing</div>
</div>
<div class="container">
<h3 class="main">title 2 here</h3> //text in bold would be $main[1]
<div> various text here</div>
<div class="listing">more text here 2</div> //text in bold would be $listing[1]
<div> various other text here</div>
<span class "wrap">wrap up text 2</span> //text in bold would be $wrap[1]
<div>end of this listing</div>
</div>
<div class="container">
<h3 class="main">title 3 here</h3> //text in bold would be $main[2]
<div> various text here</div>
<div class="listing">more text here 3</div> //text in bold would be $listing[2]
<div> various other text here</div>
<span class "wrap">wrap up text 3</span> //text in bold would be $wrap[2]
<div>end of this listing</div>
</div>
<div> various text</div>
</body>
</html>
EOD;
So for each <div class="container"> I need to pull out the text between:
<h3 class="main"> </h3>
<div class="listing"> </div>
<span class "wrap"> </span>
and make each into it's own array, so I can later say:
<p>
echo $main[0];'<br />';
echo $listing[0];'<br />';
echo $wrap[0];'<br />';
</p><p>
echo $main[1];'<br />';
echo $listing[1];'<br />';
echo $wrap[1];'<br />';
</p><p>
echo $main[1];'<br />';
echo $listing[1];'<br />';
echo $wrap[1];'<br />';
</p>
There will be 25 reiterations of this in all.
I know some php basics of course, but don't know how to put a while or for each thing nor how to pull the data out from between text... but I can certainly work off of a good example if you can put one together for me.
Thanks! Chris
So you want to extract data from a webpage?
sounds like you're looking for scraper. if your php knowledge is that weak, you might be better off finding a library that does it.
[link to competing web site removed]
Is this really the data you're working with? It's not even valid HTML!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Yikes, ok all.
Thank you for help. It's not the actually html, I just threw that together for an example so I can work from it. I'm pulling data from a number of sites for a project on trends, not a critical application. Looked at several spidering services by they didn't do quite what I wanted and were costly for a small project.
Thanks again.
Thank you for help. It's not the actually html, I just threw that together for an example so I can work from it. I'm pulling data from a number of sites for a project on trends, not a critical application. Looked at several spidering services by they didn't do quite what I wanted and were costly for a small project.
Thanks again.
OK, good luck with it. As long as you understand the risks...
best regards, ~Ray
best regards, ~Ray