Home | Products | Consulting | Forums | Support | Order | 1-800-752-0455
  Main
Index
Search
Posts
Who's
Online
Log
In

Home: General: Off Topic Conversations:
Help with PHP and search engine

 

 


esq
User

Feb 5, 2003, 11:18 PM

Post #1 of 8 (5064 views)
Shortcut
Help with PHP and search engine Can't Post

I have this problem with a search engine. At the moment I´m using "DGS search" at my homepage. As the hp contains some scandinavian letters I get serious problems with search results.

For example; As I try to search any word that contains ä, ö, å; there arent any results though there should be. I have tried to solve the problem by using str_replace -command, but without results. The search engine turns every ä to %E4 and same to other scandinavian letters. Though I have tried to put directly right letters to the search address(.../search.php?q=s%E4yne | .../search.php?q=säyne). It finds nothing. I know that there is propably very easy solution for this prob, but I just cant figure it out Pirate



Any help appreciated



Esq


Offlander
User

Feb 6, 2003, 1:01 PM

Post #2 of 8 (5056 views)
Shortcut
Re: [esq] Help with PHP and search engine [In reply to] Can't Post

Hi esq,

My first suggestion would be to visit the following pages in the PHP docs at php.net and be sure to check out related functions (if you haven't already).

http://www.php.net/manual/en/function.htmlentities.php
http://www.php.net/manual/en/function.urlencode.php

I don't have experience with parsing scandinavian letters but the htmlentities and urlencode functions work wonders on data that the HTTP protocol has problems with. Smile

-shane


esq
User

Feb 6, 2003, 11:44 PM

Post #3 of 8 (5046 views)
Shortcut
Re: [Offlander] Help with PHP and search engine [In reply to] Can't Post

Ok.. Getting there.. But to reveal a bit more:

--- code ---

<FORM METHOD="get" ACTION="search.php" TARGET="_self">


<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD><div align="right">

<INPUT NAME="q" TYPE="text" TABINDEX="1" SIZE="15">
&nbsp;</div></TD>
</TR>
<TR>
<TD> <div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="haku_ohje.php">(
Haku ohjeet )</a></font>
<INPUT name="submit" TYPE="submit" TABINDEX="3" VALUE="Hae">

---code----

As you can see the values will be sent to search.php via url. I have tried following solution with php;

<? php

$q = str_replace("ä","ä",$q);
$q = str_replace("ö","ö",$q);
$q = str_replace("å","å",$q);

$q = urldecode($url);
$q = str_replace("%E4", "ä", $q);
$q = str_replace("%F6", "ö", $q);
$q = str_replace("%E5", "å", $q);

?>

But something little is missing (Still Crazy ).. Should I do this at this file or to the search.php? And which method? I´m a bit confused.. url_encode seems to be good but cant get it work, str_replace should fix this but doesnt and html_specialchars doesnt fix. The possibility is that I´m trying to put the code to the wrong file... *sigh* Any suggestions?



Thanks in advance


Offlander
User

Feb 7, 2003, 11:45 AM

Post #4 of 8 (5039 views)
Shortcut
Re: [esq] Help with PHP and search engine [In reply to] Can't Post

As far as which page to put the str_replace() in, I'm not familiar with DGS search. But I went to their site, tried their demo:
http://www.digital-genesis.com/dgssearch/
I did a search for "å" and saw that it is encoded in the URL to "%E5" by default. But, without downloading and using the software I have no way of knowing if it de-encodes when doing the filesystem search.

If it's not de-encoded then it wouldn't find "%E5" in the source and so str_replace() won't help anyway.

Well... my next question would be, how is a "å" actually entered into the source in the page? Since the search is doing a file system search it's looking directly at the source of the page. Is the "å" typed as that in the page or is it entered as "&aring;".

You being more familiar with the software, hope this helps put you more on the right track. Smile

Lastly, have you dropped an email to DGS?

-shane


esq
User

Feb 9, 2003, 8:11 AM

Post #5 of 8 (5028 views)
Shortcut
Re: [Offlander] Help with PHP and search engine [In reply to] Can't Post

Thanks for the help Wink

I´ve tried to contact genesis if they could help but I havent got a reply. Actually there is no marks of them since 2000 (At least at the homepage). The way the dgs search handles å ( aka "&aring;"), is unfamialiar to me. Since it handles the files through a form field and it is sent directly to php -file which handles the search in the database, I believe it turns the å to %E5.

I think that you have apoint here. I havent thought of that it should be de-encoded. It might be possible to do at the php file which hadles the search. But what kind of php code would you suggest to do the encoding? I tried the str and it didnt work. But to think of, str_replace wouldnt indeed do the trick. But what would? I´m a bit lost with this Frown



Still, all the help is appreciated



esq


Offlander
User

Feb 11, 2003, 1:16 PM

Post #6 of 8 (5012 views)
Shortcut
Re: [esq] Help with PHP and search engine [In reply to] Can't Post

Hey esq,

I'm not familiar enough with dgs, as mentioned before, to quite know or understand how it is handling foreign chars. And with a deadline of my own looming I can't really take the time to play with it. But, as a pretty good troubleshooter (when I don't know what the problem is) I try to check for constants that I DO know.

So, I certainly agree that dgs turns the å into %E5 and then appears to search for that. So I'd sprinkle a few %E5's around the content in the database and see then if you find it when searching for å.

If so, then you know you can build a kludge around the dgs quirk, which is what you are trying to do anyway. So then if you're using web based forms for data entry you can use str_replace on entry to convert chars for storage in the database and vice-versa for retrieval and display.

Lastly, as a developer myself, my question to you would be, "Why have you decided to use dgs rather than htDIG, SWISH-e, or even Interactive Tools' Search Engine?" They are all very well supported, documented, powerful, and highly customizable. Very curious. Smile

-shane


esq
User

Feb 12, 2003, 12:28 AM

Post #7 of 8 (5003 views)
Shortcut
Re: [Offlander] Help with PHP and search engine [In reply to] Can't Post

The reason why I´m using DGS is that it doesnt spider the mysql and create a separate file or database for the results / search words. Rather it checks everytime the database. The second reason is that it was easily integrated to my needs and its versatile. The only prob which I have encountered are the scandinavian letter *grrr* Thirdly, its free. More reasons? Sly It´s fully php driven and so it´s platform free... Rather good points in a search prog.



Blush I just have to dig deeper to the damn code and try to figure out how to get this thing "on the road" again *sigh* ("Where´s the damn php manual?" *LOL*). But if there´s no way out, I have to change the search prog *grr*... But that wont easily happen.

I checked if E%5 could be found in the database, the answer is yes. So I have to find a way to change the mumbo jambo to scandinavian letters...



~esq~


ZoDiaC
New User

Apr 28, 2003, 7:44 AM

Post #8 of 8 (4883 views)
Shortcut
Re: [esq] Help with PHP and search engine [In reply to] Can't Post

Hi,
I had the same problem with Croatian letters.
Here is how I solve it, after days of trying & looking at php code.
In your search.php file find line:
$q = strtr($q, get_html_translation_table(HTML_ENTITIES));
and just comment it by putting // at the beginning of the line.

Hope this will help you,
greetingz

 
 
 


Search for (options)
Products
CMS Builder
Article Manager
Realty Manager
Listings Manager
Order Now
Services
Priority Consulting
Support
Online Documentation
Support Forums
Support Homepage
Company Info
12 reasons to choose us!
Meet the team
Monthly newsletter
Contact Us
Toll Free: 1-800-752-0455
Phone: (604) 689-3347
Sales | Support
Conditions of Use | Privacy Policy | Copyright © interactivetools.com 2008
#201 - 2730 Commercial Drive, Vancouver BC Canada V5N 5P4