PHP preg_Match含义和问题

2022-03-29 00:00:00 php preg-match scripting

目前我有以下代码:

<?php
if (isset($_GET['id'])) {
$itemid = $_GET['id'];
$search = "$itemid";
$query = ucwords($search);
$string = file_get_contents('http://clubpenguincheatsnow.com/tools/newitemdatabase/items.php');
if($itemid=="")
{
echo "Please fill out the form.";
}
else
{
$string = explode('<br>',$string);
foreach($string as $row)
{
preg_match('/^(D+)s=s(d+)s=s(D+)s=s(d+)/', trim($row), $matches);
if(strstr($matches[1], $query))
{
echo "<a href='http://clubpenguincheatsnow.com/tools/newitemdatabase/info.php?id=$matches[2]'>";
echo $matches[1];
echo "</a><br>";
}
}
if($matches[1]=="")
{
echo "Item does not exist!";
}
}
}
else {
echo "Item does not exist!";
}
?>

我想知道的是这个部分是什么意思?preg_match('/^(D+)s=s(d+)s=s(D+)s=s(d+)/', trim($row), $matches);主要是/^(D+)s=s(d+)s=s(D+)s=s(d+)/部分是我想知道的。

此外,我一直有一个问题是,我如何才能允许它也使用数字?因为我有另一个包含Data(http://clubpenguincheatsnow.com/tools/newitemdatabase/items.php)的文件,它希望它获取所有内容,甚至包括带有数字的名称。

我该怎么做呢?请帮帮我!如有任何帮助,将不胜感激!


解决方案

这是一个正则表达式。

"^"匹配字符串的开头。

"D"匹配任何不是数字的字符。

"d"可匹配任何数字。

"%s"与任何空格匹配。

加号表示前一个字符可以多次出现。

所以基本上它将匹配文件中的所有行,最后一个逗号除外。

Blue = 1 = No = 20

该行将与正则表达式匹配。

关于您的最后一个问题要允许使用数字,请使用以下命令:

/^(.+)s=s(d+)s=s(D+)s=s(d+)/

相关文章