一般怎么判断搜索的input?判断变量“非空但允许为零”吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cssnote
V2EX    PHP

一般怎么判断搜索的input?判断变量“非空但允许为零”吗?

  •  
  •   cssnote 2013-07-14 08:20:18 +08:00 3819 次点击
    这是一个创建于 4473 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 条回复    1970-01-01 08:00:00 +08:00
    arron
        1
    arron  
       2013-07-14 08:39:11 +08:00
    同求

    我现在用这

    strlen(trim( $str ));
    cssnote
        2
    cssnote  
    OP
       2013-07-14 08:58:54 +08:00
    @arron

    你是用 !$str 、empty($str)、还是$str=='' ???
    arron
        3
    arron  
       2013-07-14 09:13:19 +08:00
    觉得可以用这个:

    $str || $str === "0"

    下面这个可以顺便滤掉空白参数

    strlen( trim( $str ) )
    cssnote
        4
    cssnote  
    OP
       2013-07-14 09:33:23 +08:00
    @arron 你说听这个完整应该怎么写?

    直接用 $str ==' ' 更简单啊
    arron
        5
    arron  
       2013-07-14 09:46:53 +08:00
    恩, 测了下 $str == '' 可以.
    123123
        6
    123123  
       2013-07-14 09:58:57 +08:00 via Android
    如果是警告报 notice 不要紧吗
    cssnote
        7
    cssnote  
    OP
       2013-07-14 10:04:13 +08:00
    @123123 不明白你说的
    dongbeta
        8
    dongbeta  
       2013-07-14 10:12:12 +08:00
    一般情况下,搜索条件的:
    1. 是一个有意义的搜索条件(去掉特殊字符,无意义字符)
    2. 处理过的字符串长度大于特定长度(比如 3 个字符)


    @cssnote 程序做到 notice free 很要紧。
    msg7086
        9
    msg7086  
       2013-07-14 10:48:34 +08:00
    "非空但允许为零"

    直接判断非空就行了。 isset($_GET['q']) && trim($_GET['q']) !== ''
    cssnote
        10
    cssnote  
    OP
       2013-07-14 21:43:31 +08:00
    @msg7086

    你这句里面能去除isset吗,会有什么影响 ?
    msg7086
        11
    msg7086  
       2013-07-15 05:55:23 +08:00
    @cssnote 判断数组里是否有这个项目。直接引用会报错并严重降低性能。
    picasso250
        12
    picasso250  
       2013-07-15 12:49:29 +08:00
    @msg7086 把“严重”二字去掉吧
    这更多的关乎严谨。
    msg7086
        13
    msg7086  
       2013-07-15 13:34:00 +08:00
    @picasso250 嗯,主要是best practice的问题,但是我记得以前有人说过产生任何错误都会造成额外的性能损失,而且很大。
    picasso250
        14
    picasso250  
       2013-07-15 16:27:09 +08:00
    @msg7086 “而且很大”,我觉得那人夸张了。

    当然,我也是支持使用isset的。这种用户输入,自然要小心。
    cssnote
        15
    cssnote  
    OP
       2013-07-15 17:07:05 +08:00
    @msg7086
    @picasso250

    任其输入任何内容,不都isset了吧?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2383 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 01:22 PVG 09:22 LAX 18:22 JFK 21:22
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86