PHP strpos ile Sorun

2 Cevap php

Ben basit bir fonksiyon yazıyorum ve nedense (muhtemelen basit bir) için benim için çalışmıyor ve siz bana yardımcı olabilir merak ediyordum.

function check_value($postID) 
    {
    	$ID = $postID;
    	$cookie = $_COOKIE['list_of_IDS'];
    	$position = strpos($cookie,$ID);
    	echo 'ID:'.$ID.'-Cookie:'.$cookie;
            if ($position !== false)
    	{
    		echo "ID is in the cookie";
    	}
    }

Sorunun ne olduğunu anlamaya çalışıyorum aslında şeyler değişkenler var olduğundan emin olmak için orada varsa Tablosuna yukarıdaki o yankı çizgi koymak.

Benim sorunum EĞER deyimi yazdırır asla olmasıdır.

A $postID bir sayıdır 123123.

$cookie dize genellikle 123123.23422.234234.2342342.234234 gibi bir şeydir

Yardımlarınız için teşekkürler!

2 Cevap

Strpos bir int ile çalışmaz, böylece bir dize kimliği döküm gerekir. Bu deneyin:

$ID = (string)$postID;

Cookie dize 123123.23422.234234.2342342.234234 gibi görünüyor ve siz, diyelim ki, bir kimliği arıyor 1231 veya 23 ise, işlev (3) [{return olacağını unutmayın ]} aslında kimliği listesinde değil iken. Sizin şimdiki uygulama strpos() da kısmi numaraları maç olacak.

İşte noktalarla çevrili olması kimliğini gerektiren basit bir çözüm olur.

$position = strpos('.'.$cookie.'.', '.'.$ID.'.');