1,105,625 Community Members

Extracting lines containing certain words

Member Avatar
mandy011
Light Poster
31 posts since Jul 2008
Reputation Points: 0 [?]
Q&As Helped to Solve: 1 [?]
Skill Endorsements: 0 [?]
 
0
 

hey there :-)
I am facing a small problem, can you recommend me something? my problem is like this:
now when a user searches some keywords on my website i extract data of website which includes complete page details. at a time i am fetching 10 results!
so now assume

while($out=mysql_fetch_assoc($res))
{
    echo $out['full_txt']; // this echos complete page i.e. each and everything on page!
    // this $out['full_txt'] is a string!
}

Now what i want to do is Depending upon keywords searched, i want to extract lines from this full_txt . Eg. I searched "hello world"
then i want to display website description as the lines which consists of either hello or world or both . The description is required to be modified from $out['full_txt'] thing. How can I achieve it? help would be really appreciated. thank you so much!
Here the words are the keywords searched by user. Help is really very much appreciated.

Is there any way that substr or other function can help me out from this situation?

Member Avatar
diafol
Where are my eyes?
12,977 posts since Oct 2006
Reputation Points: 1,821 [?]
Q&As Helped to Solve: 1,848 [?]
Skill Endorsements: 92 [?]
Moderator
Featured
Sponsor
 
0
 

SO you want to output just the sentences with the keywords? And list them underneath a page link, like a google search?

Member Avatar
pritaeas
mod_pritaeas
11,315 posts since Jul 2006
Reputation Points: 1,420 [?]
Q&As Helped to Solve: 1,835 [?]
Skill Endorsements: 155 [?]
Moderator
Featured
Sponsor
 
0
 

Give an example of your input, keyword, and desired output. It would be much easier for us to recommend something.

Member Avatar
mandy011
Light Poster
31 posts since Jul 2008
Reputation Points: 0 [?]
Q&As Helped to Solve: 1 [?]
Skill Endorsements: 0 [?]
 
0
 

Ardav you got it exactly right.. I wanna display output like how google shows description!

@ardav and @ pritaeas I am making a search engine as project.. I have completed with almost everything else, Only part remaining is how to show Google Like Description?
If i am searchin a query on google, google gives description as lines containing those searched keywords.

Here in my search engine i got a column with name full_text which consists of everything in a webpage. I want to extract only those lines which consists any of the keywords searched and show it to user.

Thanks in advance :-)

Member Avatar
diafol
Where are my eyes?
12,977 posts since Oct 2006
Reputation Points: 1,821 [?]
Q&As Helped to Solve: 1,848 [?]
Skill Endorsements: 92 [?]
Moderator
Featured
Sponsor
 
1
 

1) Decide how many displays you want per 'page' (record).
2) Search for your keywords in an SQL/DB using MATCH/FULLTEXT?
3) For each record, cut all sentences into lines (using explode on "\n" or ". " or ".\n") - this may will be different if your content is stored in html format.
5) Print the page title
4) Loop through the lines, one at a time, echoing the first say 3 line hits as text in an array, but keep looping to get the total hits number.
5) Echo a last line saying something like 'Displaying 3 out of [27] matches for this page'. Where the 27 is the total number of line hits for that record.

Is that the sort of thing?

Have a go, have a little play. Come back if stuck.

Member Avatar
mandy011
Light Poster
31 posts since Jul 2008
Reputation Points: 0 [?]
Q&As Helped to Solve: 1 [?]
Skill Endorsements: 0 [?]
 
0
 

How do I extract 10-15 words separated by "Space" starting from a particular word. Example:
"Welcome to the world of java. Java is platform independent and one of the easy to learn language."
Now I want to extract the 5 words from last occurance of java. i.e.
Output should be : Java is platform independent and
How can I achieve this? I am stuck here :'(

foreach($words['hilight'] as $word) {
            $tmp=strtolower($fulltxt);
            $len=strlen($tmp);
            $found_in=strpos($tmp,$word);
            if(!($found_in==''))
            {
                if($count_of_words==1)
                $dsc=$dsc." ".substr($tmp,($found_in),160);
                else 
                $dsc=$dsc." ".substr($tmp,($found_in),60);
            }               
            }

something like above code I am using. But what happens is sometimes for example: instead showing complete word "the" it outputs "t" because of 160 is the length which i specified to be extracted.

After running above script I got output like:

java tutorials introduction introduction t tutorials trainings books social tutorials trainings books social
as you can see after introduction instead of the , it shown only 't'.
Please give some suggestions/ideas.
thanks

Member Avatar
diafol
Where are my eyes?
12,977 posts since Oct 2006
Reputation Points: 1,821 [?]
Q&As Helped to Solve: 1,848 [?]
Skill Endorsements: 92 [?]
Moderator
Featured
Sponsor
 
0
 

Sorry on holiday at the mo, so can't post code v well via mobile. Will be back by sat. In meantime, anybody else?

Member Avatar
mandy011
Light Poster
31 posts since Jul 2008
Reputation Points: 0 [?]
Q&As Helped to Solve: 1 [?]
Skill Endorsements: 0 [?]
 
0
 

@ardav thanks bro :-)
actually I wanna solve this problem asap :'(
project submission is coming ahead so I have to finish this thing..! I am able to finish up everything else :-)

Member Avatar
mandy011
Light Poster
31 posts since Jul 2008
Reputation Points: 0 [?]
Q&As Helped to Solve: 1 [?]
Skill Endorsements: 0 [?]
 
0
 

Ok i have managed to solve this problem! Thanks!!
What I did is:

    $dsc=$dsc." ".substr($tmp,($found_in),160);
    $dsc=substr($dsc,0,strpos($dsc," "))
Member Avatar
Biiim
Posting Pro
504 posts since Oct 2011
Reputation Points: 85 [?]
Q&As Helped to Solve: 86 [?]
Skill Endorsements: 9 [?]
 
0
 

all solved?

You
This article has been dead for over three months: Start a new discussion instead
Post:
Start New Discussion
View similar articles that have also been tagged: