Jump to content

[SOLVED] Why isnt my strpos working?


iPixel

Recommended Posts

Long story short, my menu is driven by a database that has two fields.

Menuname  -  Linkname

 

Menuname has names like -- Home, About Us, Blah blah....

Linkname has info like - blah.pdf, jimbo.xls, and http://www.google.com

 

files such as pdf's xls or doc files are stored in a directory

 

So my idea to know when to use the directory or not was to use strpos() and look for .com in the result for linkname, so if it returns true dont use the directory but if it's false use it.

 

Code:

<?php
$gethrmenu_q = "SELECT * FROM xx_menu WHERE parent = 'Programs' ORDER BY menuname ASC";
$gethrmenu_s = mysql_query($gethrmenu_q) or die(mysql_error());
while($gethrmenu_r = mysql_fetch_assoc($gethrmenu_s))
{
	$needle = ".com";	
	$haystack = $gethrmenu_r['linkname'];
	$checkLink = strpos($needle, $haystack);
	if($checkLink == true)
		{
			$dir = "";
		}
	else
		{
			$dir = "documentfiles/";
		}
	?>
        <span class="subLink"><a href="<?php echo $dir; echo $gethrmenu_r['linkname']; ?>" target="_blank"><?php echo $gethrmenu_r['menuname']; ?></a></span><br />
        <?php
}

?>

Link to comment
https://forums.phpfreaks.com/topic/176880-solved-why-isnt-my-strpos-working/
Share on other sites

Change

if($checkLink == true)

to

if($checkLink !== false)

 

Returns the position as an integer. If needle is not found, strpos() will return boolean FALSE.

 

Warning

This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.