Doesn't matter anymore but hyphens are easier to ready when links are underlines
Kind regards, Keri Henare --------------------------------------------------- [e] [email protected] [w] kerihenare.com [m] (+64) 021 874 552 [t] @kerihenare PLEASE NOTE: I check my email 3 times per day and will respond at these intervals. For anything urgent please ring me. --------------------------------------------------- On Saturday, 21 May 2011 at 5:20 PM, .Net2Php wrote: > Hi Karl, just something to consider: > http://www.youtube.com/watch?v=Q3SFVfDIS5k > (Matt Cutts says to use hyphens over underscores; not sure how up to > date this information is as I don't follow SEO stuff that closely) > > On May 21, 4:33 pm, Admin <[email protected]> wrote: > > Thanks for that Simon... > > > > We are currently restricted to PHP 4, and that code is part of a function > > already... the full function is: > > > > function seolink($prodid) { // Crafts an SEO-friendly text-embedded string > > for URL... > > $db = mysql_connect(-stuff-) or die("Could not connect to server!"); > > mysql_select_db("-stuff-",$db); > > $prodsql = "SELECT ProdName FROM product WHERE ProdID='$prodid'"; > > $prodres = mysql_query($prodsql); > > $prodrow = mysql_fetch_array($prodres); > > > > if($prodrow) { // If we have a valid entry... > > $prodname = $prodrow['ProdName']; > > > > $killarray = array('and', '&', 'the', 'of', '-', ':', '.', '?', '\'', '!', > > '(', ')', '0','1','2','3','4','5','6','7','8','9'); // List of > > undesirables... > > $linkname = str_replace(' ', '_', > > str_replace($killarray,'',makeutf8($prodname))); // Removes undesirables > > and replaces them with underscores... > > while(strpos($linkname,'__') !== FALSE) { > > $linkname = str_replace('__', '_', $linkname); // removes multiple > > consecutive spacers... > > } > > $seo_link = $prodid . "-" . $linkname; > > > > return($seo_link); // Send back final string... > > } else { > > return(''); //... or empty string if there is no listing under this ProdID. > > } > > > > } > > > > So... not too sure how your code would plug in here... > > > > > > > > > > > > > > > > > > > > > preg_replace(array_map(function($arg) { return '/\b'. > > > preg_quote($arg) . '\b/'; }, $killarray), ' ', makeutf8($prodname)); > > > > > That uses closures so requires PHP 5.3. If you can't use that, move > > > the function elsewhere, give it a name and pass that name as a > > > string to array_map(). > > > > > What this is doing is using the word boundary class to only match > > > complete words. array_map() just loops over the given array, > > > applies the given function to each item and returns all the return > > > values in an array. > > > > > On 21/05/2011, at 2:26 PM, Admin wrote: > > > > > > Possibly OT, but think this group may have the solution... > > > > > > Given a variable of $prodname = "Jane and the Dragon : Fair > > > > Weather Friends"; > > > > > > And the operation code: > > > > $killarray = array('and', '&', 'the', 'of', '-', ':', '.', '?', > > > > '\'', '!', '(', ')'); $linkname = str_replace(' ', '_', > > > > str_replace($killarray," ",makeutf8($prodname))); // Removes all > > > > surplus non-essential pieces, and inserts http-safe spacers > > > > while(strpos($linkname,'__') !== FALSE) { > > > > $linkname = str_replace('__', '_', $linkname); // Remove multiple > > > > 'spacers' } > > > > > > I get a result of $linkname = "Jane_Dragon_Fair_Wear_Friends" > > > > > > As you can see, it's stealing the "the" out of "Weather" and > > > > making it "Wear"... > > > > > > If I include spaces in the $killarray items, the whole thing > > > > turns even worse, with virtually no _ separators... > > > > > > I have tried having 'the ' and ' the' (ditto for other words in > > > > the $killarray too) but then it still does the same thing with > > > > words such as 'anders', 'sand', 'offer', 'theory' and 'menthe'... > > > > --- > > Karl > > -- > NZ PHP Users Group: http://groups.google.com/group/nzphpug > To post, send email to [email protected] > To unsubscribe, send email to > [email protected] > -- NZ PHP Users Group: http://groups.google.com/group/nzphpug To post, send email to [email protected] To unsubscribe, send email to [email protected]
