php - 在 PHP 中验证字母数字字符串
问题描述
我不确定字母数字是否是正确的术语,但我想验证字符串、整数和破折号组合的字符。示例:yui-4444-99
。到目前为止,我已经尝试过 intval、strcmp、ctype_alnum 和 preg_match,但它并没有真正起作用。
样本:
<?php
if (ctype_alnum($string1) == ctype_alnum($string2)) {
echo "nice!";
} else {
}
我的 txt. 文件
abc-1234-99
Cedric
93482812
cedric@hotmail.com
---------------------------------------------
def-4332-99
Wendy
98238432
wendy@hotmail.com
Guitar
2010
Yamaha
Scratches on the side
Used
---------------------------------------------
fgh-4567-99
Wendy
98238432
wendy@hotmail.com
---------------------------------------------
yui-4444-99
Wendy
98238432
wendy@hotmail.com
---------------------------------------------
vbn-5624-99
jason
98238432
wendy@hotmail.com
---------------------------------------------
这就是我将我的值提取到差异变量的方式。
<?php
$handle = @fopen('listings.txt', "r");
$row = 0;
$count = 0;
$line0 = [];
$line1 = [];
$line2 = [];
$line3 = [];
$line4 = [];
$line5 = [];
$line6 = [];
$line7 = [];
$line8 = [];
$line9 = [];
if ($handle) {
while (!feof($handle)) {
$store = fgets($handle, 4096);
if ($row == 10){
$row = 0;
$count++;
}
if ($row == 0)
{
$line0[] = strval($store);
}
else if($row == 1) {
$line1[] = strval($store);}
else if($row == 2) {
$line2[] = strval($store);}
else if($row == 3) {
$line3[] = strval($store);}
else if($row == 4) {
$line4[] = strval($store);}
else if($row == 5) {
$line5[] = strval($store);}
else if($row == 6) {
$line6[] = strval($store);}
else if($row == 7) {
$line7[] = strval($store);}
else if($row == 8) {
$line8[] = strval($store);}
$row++;
}
$sn = 0;
if (isset($_GET['sn'])) {
$sn=$_GET['sn'];
}
$item = count($line0);
for ($c=0; $c<$item; $c++)
{
if((intval($line0[$c]) == intval($sn))) {
echo $line0[$c],"<br>";
echo $line1[$c],"<br>";
echo $line2[$c],"<br>";
echo $line3[$c],"<br>";
echo $line4[$c],"<br>";
echo $line5[$c],"<br>";
echo $line6[$c],"<br>";
echo $line7[$c],"<br>";
echo $line8[$c],"<br>";
break;
}
}
?>
<?php
fclose($handle);
}
?>
解决方案
从 PHP 8 开始,您可以将字符串与其等效的数字进行比较:
$test = ['', 'a23', '23', 'abc'];
foreach ($test as $string) {
echo ($string != (int) $string ? 'TRUE' : 'FALSE') . PHP_EOL;
}
输出:
TRUE
TRUE
FALSE
TRUE
推荐阅读
- visual-studio - 如何打开多个VS实例
- ios - UISearchController/UISearchBar 在 macOS 下的行为与 iOS 不同
- flutter - 无法从“Runner”更改颤振应用程序名称
- javascript - 单击按钮播放随机视频
- r - 使用列本身中的文本重命名数据框列
- c - 如何打印链表中除最后一个元素外的每个元素
- strapi - Strapi如何限制用户添加的内容
- java - Java + MySQL:我有加密密码的好方法吗?
- reactjs - 使用反应钩子从父组件更新子组件的状态
- vb.net - 如何显示此 Microsoft Visual Studio 代码的标签?