重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

phpで文字列に「"」「'」「,」「.」「(」「)」「-」が含まれているかどうか確認にはどうやったらいいのでしょうか?

「,」「.」「(」「)」「-」は下記でできたのですが、

if(strpos($text,',') !== false){
echo 'カンマが含まれています';
}

「"」「'」だとうまくできませんでした。
どのようにしたらいいのでしょうか。

また、「"」「'」「,」「.」「(」「)」「-」をまとめて判別する方法も可能でしょうか?

A 回答 (3件)

preg_match('/["\',.()-]/',文字列) かと


以下サンプルソース
<?php
function test($data)
{
echo "<$data>\n";
if (preg_match('/["\',.()-]/',$data) > 0){
echo("match <$data> \n");
}
}
test('"');
test("'");
test(",");
test(".");
test("(");
test(")");
test("-");
?>

実行結果
php sample.php
<">
match <">
<'>
match <'>
<,>
match <,>
<.>
match <.>
<(>
match <(>
<)>
match <)>
<->
match <->
    • good
    • 0
この回答へのお礼

ありがとうございました。
まとめて判別できました。

お礼日時:2019/01/07 15:54

strpos にしても preg_match にしても, しかるべくエスケープすればいいだけのような気がするんだけどね.



「「"」「'」だとうまくできませんでした。」ってのは, 具体的にはどうやってどううまくできなかったんだろうか.
    • good
    • 0
この回答へのお礼

おっしゃるとおり、エスケープが必要だったみたいです。
ありがとうございました。

お礼日時:2019/01/07 15:55

正規表現って使えないんだっけ?

    • good
    • 0
この回答へのお礼

正規表現でも構いません。ただ、下記などを参考にしたのですが、それでもうまくできなかったので、シンプルにstrposの方がいいかなと思いまして。
https://detail.chiebukuro.yahoo.co.jp/qa/questio …

お礼日時:2019/01/06 23:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!