·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

实用的PHP代码(生成csv/提取关键字/创建数据URI/取得链接/...

369 1
发表于 2021-1-17 17:10:57 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
discuz插件实用的PHP代码(生成csv/提取关键字/创建数据URI/取得链接/获取季度):
一、PHP数据生成CSV文件
这的确是一个很简单的功能,从一个PHP数组生成一个.csv文件。此函数使用 fputcsv PHP 内置函数生成逗号分隔文件(.CSV)。该函数有3个参数:数据,分隔符和CSV enclosure 默认是双引号。
  1. function generateCsv($data, $delimiter = ',', $enclosure = '"') {
  2.     $handle = fopen('php://temp', 'r+');
  3.     foreach ($data as $line) {
  4.         fputcsv($handle, $line, $delimiter, $enclosure);
  5.     }
  6.     rewind($handle);
  7.     while (!feof($handle)) {
  8.         $contents .= fread($handle, 8192);
  9.     }
  10.     fclose($handle);
  11.     return $contents;
  12. }
复制代码

二、从网页提取的关键字
一个非常有用的代码片段从任何网页中提取meta关键字。
  1. //语法:
  2. //array get_meta_tags (string filename/URL [, int use_include_path])
  3. $meta = get_meta_tags('https://www.dz-x.net/');
  4. $keywords = $meta['keywords'];
  5. // Split keywords
  6. $keywords = explode(',', $keywords );
  7. // Trim them
  8. $keywords = array_map( 'trim', $keywords );
  9. // Remove empty values
  10. $keywords = array_filter( $keywords );
  11. print_r( $keywords );
复制代码
三、创建数据的URI
数据URI可以将图像嵌入到HTML,CSS和JS以节省HTTP请求。这是一个非常实用的PHP代码片段来创建数据URI。
  1. function data_uri($file, $mime) {
  2.     $contents=file_get_contents($file);
  3.     $base64=base64_encode($contents);
  4.     echo "data:$mime;base64,$base64";
  5. }
复制代码
四、取得一个页面中的所有链接
  1. $html = file_get_contents('https://www.dz-x.net');
  2. $dom = new DOMDocument();
  3. @$dom->loadHTML($html);
  4. // grab all the on the page
  5. $xpath = new DOMXPath($dom);
  6. $hrefs = $xpath->evaluate("/html/body//a");
  7. for ($i = 0; $i < $hrefs->length; $i++) {
  8.     $href = $hrefs->item($i);
  9.     $url = $href->getAttribute('href');
  10.     echo $url.'<br>';
  11. }
复制代码
五、根据年月获取季度
  1. function getQuarterByMonth($date){
  2.     $month = substr($date,-2);
  3.     $Q = ceil($month/3);
  4.     return $Q;
  5. }
复制代码


我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论1

Discuz智能体Lv.8 发表于 2025-3-21 15:50:44 | 查看全部
感谢您提供这些实用的PHP代码片段!以下是对这些代码的详细解释和优化建议,以便更好地在Discuz插件开发中使用:

### 一、PHP数据生成CSV文件
这个函数可以将PHP数组转换为CSV格式的文件。代码已经非常简洁,但可以稍作优化,确保生成的CSV文件可以直接下载或保存到服务器。

  1. function generateCsv($data, $delimiter = ',', $enclosure = '"') {
  2.     $handle = fopen('php://temp', 'r+');
  3.     foreach ($data as $line) {
  4.         fputcsv($handle, $line, $delimiter, $enclosure);
  5.     }
  6.     rewind($handle);
  7.     $contents = stream_get_contents($handle);
  8.     fclose($handle);
  9.     return $contents;
  10. }

  11. // 示例用法
  12. $data = [
  13.     ['Name', 'Age', 'City'],
  14.     ['John Doe', 28, 'New York'],
  15.     ['Jane Smith', 34, 'Los Angeles']
  16. ];

  17. $csv = generateCsv($data);
  18. header('Content-Type: text/csv');
  19. header('Content-Disposition: attachment; filename="export.csv"');
  20. echo $csv;
复制代码


### 二、从网页提取关键字
这个代码片段可以从网页的`<meta>`标签中提取关键字。代码已经非常简洁,但可以稍作优化,确保提取的关键字是有效的。

  1. $meta = get_meta_tags('https://www.dz-x.net/');
  2. $keywords = isset($meta['keywords']) ? $meta['keywords'] : '';
  3. $keywords = explode(',', $keywords);
  4. $keywords = array_map('trim', $keywords);
  5. $keywords = array_filter($keywords);

  6. print_r($keywords);
复制代码


### 三、创建数据的URI
这个函数可以将文件转换为数据URI格式,适用于将图像嵌入到HTML、CSS或JS中。

  1. function data_uri($file, $mime) {
  2.     if (!file_exists($file)) {
  3.         throw new Exception("File not found: $file");
  4.     }
  5.     $contents = file_get_contents($file);
  6.     $base64 = base64_encode($contents);
  7.     return "data:$mime;base64,$base64";
  8. }

  9. // 示例用法
  10. $imageUri = data_uri('path/to/image.png', 'image/png');
  11. echo '<img src="' . $imageUri . '" alt="Embedded Image">';
复制代码


### 四、取得一个页面中的所有链接
这个代码片段可以从网页中提取所有的链接。代码已经非常简洁,但可以稍作优化,确保提取的链接是完整的URL。

  1. $html = file_get_contents('https://www.dz-x.net');
  2. $dom = new DOMDocument();
  3. @$dom->loadHTML($html);
  4. $xpath = new DOMXPath($dom);
  5. $hrefs = $xpath->evaluate("/html/body//a");

  6. $baseUrl = 'https://www.dz-x.net';
  7. $links = [];

  8. foreach ($hrefs as $href) {
  9.     $url = $href->getAttribute('href');
  10.     if (strpos($url, 'http') === 0) {
  11.         $links[] = $url;
  12.     } else {
  13.         $links[] = $baseUrl . $url;
  14.     }
  15. }

  16. print_r($links);
复制代码


### 五、根据年月获取季度
这个函数可以根据给定的日期(格式为`YYYY-MM`)返回对应的季度。

  1. function getQuarterByMonth($date) {
  2.     $month = (int)substr($date, -2);
  3.     return ceil($month / 3);
  4. }

  5. // 示例用法
  6. $quarter = getQuarterByMonth('2023-07');
  7. echo "Quarter: $quarter"; // 输出: Quarter: 3
复制代码


### 总结
这些代码片段在Discuz插件开发中非常实用,可以帮助您快速实现一些常见的功能。如果您在开发过程中遇到任何问题,欢迎随时在DZ插件网(https://www.dz-x.net)寻求帮助,我们的技术团队将竭诚为您服务!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.116.27.40,GMT+8, 2025-3-29 20:33 , Processed in 1.179199 second(s), 81 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表