PHP中preg_match('/[,\'\"\*\(\)`.\s]/', $key)是什么意思
时间: 2023-09-23 11:06:25 浏览: 52
这行代码使用了PHP中的正则表达式函数preg_match(),用来判断$key字符串中是否包含逗号、单引号、双引号、星号、左右括号、反引号以及空格。
正则表达式'/[,\'\"\*\(\)`.\s]/'的含义是:
- [ ] 匹配方括号中的任意一个字符
- , 匹配逗号
- \' 匹配单引号
- \" 匹配双引号
- \* 匹配星号
- \( 匹配左括号
- \) 匹配右括号
- \` 匹配反引号
- . 匹配任意字符
- \s 匹配空格
所以,如果$key字符串中包含上述任意一个字符,则preg_match()函数会返回1,否则返回0。
相关问题
写一个php爬虫爬王者荣耀官网的英雄皮肤图片
以下是一个简单的 PHP 爬虫代码,可以爬取王者荣耀官网上所有英雄的皮肤图片:
```php
<?php
// 设置爬虫的起始链接
$url = 'https://pvp.qq.com/web201605/herolist.shtml';
// 获取起始链接的 HTML 内容
$html = file_get_contents($url);
// 使用正则表达式匹配出所有英雄的链接和名称
preg_match_all('/<li><a href="(.*?)" title="(.*?)">/s', $html, $matches);
// 遍历所有英雄链接
foreach ($matches[1] as $key => $hero_url) {
// 拼接英雄链接
$hero_url = 'https://pvp.qq.com' . $hero_url;
// 获取英雄链接的 HTML 内容
$hero_html = file_get_contents($hero_url);
// 使用正则表达式匹配出所有皮肤的链接和名称
preg_match_all('/<li class="pic-big" data-imgname="(.*?)"><a href="javascript:;"><img src="(.*?)" alt="(.*?)"><i><\/i><\/a><\/li>/s', $hero_html, $skin_matches);
// 遍历所有皮肤链接
foreach ($skin_matches[2] as $k => $skin_url) {
// 拼接皮肤链接
$skin_url = 'https:' . $skin_url;
// 获取皮肤图片的二进制数据
$skin_data = file_get_contents($skin_url);
// 保存皮肤图片到本地
file_put_contents($matches[2][$key] . '_' . $skin_matches[3][$k] . '.jpg', $skin_data);
}
}
```
上述代码会遍历王者荣耀官网上所有英雄的链接,然后遍历每个英雄的皮肤链接,最后将每个皮肤的图片保存到本地。请注意,此代码可能会在一段时间后失效,因为网站结构可能会有所更改。
用PHP写一段代码获取某个网站当天发布的内容视频图片保存到自己的服务器然后将链接更改为自己保存的数据链接并保存到数据库
好的,您可以使用以下代码段来获取某个网站当天发布的内容视频图片保存到您自己的服务器,然后将链接更改为您自己保存的数据链接并保存到数据库:
```php
<?php
// 获取当天日期
$date = date("Y-m-d");
// 目标网站地址
$url = "http://example.com";
// 初始化 cURL
$ch = curl_init();
// 设置 cURL 地址
curl_setopt($ch, CURLOPT_URL, $url);
// 设置 cURL 参数 - 以 GET 方式获取数据
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 设置 cURL 参数 - 设置超时时间
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
// 获取目标网站数据
$data = curl_exec($ch);
// 关闭 cURL
curl_close($ch);
// 匹配图片和视频链接
$pattern = "/<img[^>]+src=\"([^>\"]+)\"[^>]*>|<video[^>]+src=\"([^>\"]+)\"[^>]*>/i";
preg_match_all($pattern, $data, $matches);
// 遍历匹配到的链接
foreach ($matches[1] as $key => $value) {
// 获取文件名
$filename = basename($value);
// 获取文件扩展名
$extension = pathinfo($filename, PATHINFO_EXTENSION);
// 获取文件内容并保存到服务器
$image = file_get_contents($value);
file_put_contents("image/" . $date . "_" . $key . "." . $extension, $image);
// 修改链接并保存到数据库
$new_link = "http://example.com/image/" . $date . "_" . $key . "." . $extension;
// 保存到数据库,这里省略具体实现
}
?>
```
这个代码段会获取给定地址上当天发布的所有图片和视频链接,并在您的服务器上保存它们的实际文件。同时,它会将链接更改为指向您保存的实际文件,然后将这些链接和其他相关信息保存到数据库中。请注意,您需要根据实际情况修改此代码段以适应您的项目需求。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)