我無法檢測字符串中的撇號(')。我試過如何在使用PHP的字符串中查找撇號?
if (strpos($username, chr(39)) > 0)
if (strpos($username, '\') > 0)
if (strpos($username, "'") !== FALSE))
沒有運氣。什麼是正確的做法?
我無法檢測字符串中的撇號(')。我試過如何在使用PHP的字符串中查找撇號?
if (strpos($username, chr(39)) > 0)
if (strpos($username, '\') > 0)
if (strpos($username, "'") !== FALSE))
沒有運氣。什麼是正確的做法?
單引號是一個特殊字符。因此,如果您想在single quoted string內使用單引號,則必須使用反斜槓\
符號來避免單引號。
int singleQuotePosition = strpos($username, '\'');
OR
int singleQuotePosition = strpos($username, "'");
bahh .. nope的文件名或目錄時不好。單引號字符串表示該字符串在單引號內。 *嘆*。 –
@yi_H:是的,它是目前的問題範圍混亂,我會編輯鏈接標題我已經提供基本上引用單引號和雙引號字符串 – sll
但這是答案是死**錯**,OP發佈了一個工作方案。 –
你上市這一塊,它應該工作:
if (strpos($username, "'") !== FALSE)
又一個隨機猜測:也許你的單引號是不是真的單引號。
如果是這樣,你可能想嘗試mb_strpos
或preg_match
找到該字符的UTF-8的變化:
preg_match("/'/u", $string);
甚至與/\p{Pi}/u
測試,看看它是另一種類型的單引號分身的。
另一個祕訣:不是strpos
和布爾結果擺弄,嘗試strstr
如果你只是想測試一個字符存在。
請提供一個簡單的測試案例。你的一個解決方案應該已經可以工作你確定它是一個撇號嗎?還有其他字符看起來像撇號。 –
我可以問你爲什麼要在用戶名中搜索'''? –
我不想允許用戶名 - 默認情況下,Drupal允許。當您想要在URL中傳遞用戶名或創建使用用戶名 – MotoTribe