1、请使用 socket 相关函数(非 curl )实现如下功 能:构造一个 post 请求,发送到指定 http server 的指定端口的指定请求路径(如 http://www.phpddt.com:8080/test )。请求中包含以下变量:

用户名( username ):温柔一刀
密码( pwd ): &123=321&321=123&
个人简介( intro ): Hello world !
且该 http server 需要以下 cookie 来进行简 单的用户动作跟踪:
cur_query : you&me
last_tm : … (上次请求的 unix 时间戳,定为当前请求时间前 10 分钟)
cur_tm : … (当前请求的 unix 时间戳)
设置超时为 10 秒,发出请求后, 将 http server 的响应内容输出。

传智播客的答案:

网上的答案

    Function encode($data, $sep = ‘&’){while (list($k,$v) = each($data)) {$encoded .= ($encoded ? "$sep" : "");$encoded .= rawurlencode($k)."=".rawurlencode($v);}Return $encoded;}Function post($url, $post, $cookie){$url = parse_url($url);$post = encode($data, ‘&’);$cookie = encode($cookieArray, ‘;’);$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80,$errno,$errstr,10);if (!$fp) return "Failed to open socket to $url[host]";fputs($fp, sprintf("POST %s%s%s HTTP/1.0/n", $url['path'], $url['query'] ? "?" : "", $url['query']));fputs($fp, "Host: $url[host]/n");fputs($fp, "Content-type: application/x-www-form-urlencoded/n");fputs($fp, "Content-length: " . strlen($encoded) . "/n");fputs($fp, "Cookie: $cookie/n/n");   fputs($fp, "Connection: close/n/n");fputs($fp, "$post /n");while (!feof($fp)) {echofgets($fp,128);}fclose($fp);}   $url = ‘http://www.phpddt.com:8080/test ’;$encoded = username= 温柔一刀 & pwd=$post = array('username' => '温柔一刀' ,'pwd => ‘&123=321&321=123&','intro => ‘Hello world!');$cookie = array('cur_query' => ‘ you&me,'last_tm' =>time() -600,'cur_tm' => time());Post($url, $post, $cookie);

2、使用正则表达式提取一段标识语言( html 或 xml )代码段中指定标签的指定属性值(需考虑属性值对不规则的情况,如大小写不敏感,属性名值与等号间有 空格等)。此处假设需提取 test 标签的 attr 属性值,请自行构建包含该标签的串

    <test attr=”ddd”><test attr/s*=/s*[“|’](.*?)[”|’].*?>

3、用 PHP 实现一个双向队列

class DEQueue {//存储protected $_storage = array();//入头public function unshift($element){return array_unshift($this->_storage, $element);}//入尾public function push($element){return array_push($this->_storage, $element);}//出尾public function pop(){return array_pop($this->_storage);}//出头public function shift(){return array_shift($this->_storage);}//长度public function length(){return count($this->_storage);}}

4、 使对象可以像数组一样进行foreach循环,要求属性必须是私有

传播智客版本

网上找的版本

    <?class Sample implements iterator{private $var = array(1,2,3,4,5);public function __construct(){}public function rewind(){ reset($this->var);}public function current(){return current($this->var);}public function key(){return key($this->var);}public function next(){return next($this->var);}public function valid(){return ($this->current()!==false);}}$sa = new sample();foreach($sa as $key => $val){print $key . "=>" .$val;}?>

5、 请写一段php代码,确保多个进程 同时写入同一个文件成功

    function writeData($path, $mode, $data){ $fp          = fopen($path, $mode); $retries     = 0;$max_retries = 100; do {if ($retries > 0) {usleep(rand(1, 10000));}$retries += 1;}while (!flock($fp, LOCK_EX) and $retries <= $max_retries); if ($retries == $max_retries) {return false;}fwrite($fp, "$data\\n");flock($fp, LOCK_UN);fclose($fp); return true; }

6、 如何遍历一个文件夹下所有的内容

<?php
$dir = "."; //当前目录
list_file($dir);  function list_file($dir){  $list = scandir($dir); // 得到该文件下的所有文件和文件夹  foreach($list as $file){//遍历  $file_location=$dir."/".$file;//生成路径  if(is_dir($file_location) && $file!="." &&$file!=".."){ //判断是不是文件夹  echo "------------------------sign in $file_location------------------";  list_file($file_location); //继续遍历  }  echo "<br/>";  }
}
?>  

7、二分法和冒泡排序(为什么把这俩在一起说呢,因为他俩都是经常被考到的,而且对于我们的思维逻辑很重要) 二分法 array(1,2,3,4,5,6,7)取出其中一个值的键名

//二分法
function dis($arr,$var) {  $max = count($arr);  $mid = intval($max/2);  if($arr[$mid-1] == $var){  return $mid;  }  if($arr[$mid-1] >= $var){  $arrs = array_slice($arr,0,$mid);  return dis($arrs,$var);  }else{  $arrs = array_slice($arr,$mid,$mid);  return dis($arrs,$var);  }  }  $arr = array(1,2,3,4,5,6,7,9);  echo $a = dis($arr,2);  
//冒泡
$arr = array(1,5,2,23,64,27);  foreach($arr as $key=>$val){  for($i=0;$i<count($arr);$i++){  $var = '';  if($arr[$i] < $arr[$i+1]){  $var = $arr[$i];  $arr[$i] = $arr[$i+1];  $arr[$i+1] = $var;  }  }  }  print_r($arr);  

8、将一个多维数组转化成一维数组

<?php
function splitArray($array){  static $res = array();  foreach($array as $Key=>$val){  if(is_array($val)){  splitArray($val);  }else{  array_push($res,$val);  }  }  return $res;
}
$array = array(1,2,array(2,array(array(3),array(4),5),6));
$res = splitArray($array);
print_r($res);
?>  

9、使用正则表达式提取一段标识语言( html 或 xml )代码段中指定标签的指定属性值(需考虑属性值对不规则的情况,如大小写不敏感,属性名值与等号间有 空格等)。此处假设需提取 test 标签的 attr 属性值,请自行构建包含该标签的串

<test attr=”ddd”>
<test attr/s*=/s*[“|’](.*?)[”|’].*?>

10、写一个函数,尽可能高效的,从一个标准url里取出文件的扩展名,例如:http://www.sina.com.cn/abc/de/fg.php?id=1需要取出php或.php(新浪)

11、使用正则表达式提取一段标识语言(html或xml)代码段中指定标签的指定属性值(需考虑属性值对不规则的情况,如大小写不敏感,属性名值与等号间有空格等)。此处假设需提取test标签的attr属性值,请自行构建包含该标签的串(腾讯)

腾讯面试题----全是代码编程题相关推荐

  1. java在线编程题_阿里笔试题(2017在线编程题)-- 数串分组 --Java实现

    看到有人写了阿里的面试题,心里痒痒,好久 没搞过这些了,写着实现一下 题目 2017年3月阿里在线编程题(实习内推) 给定一串数字 判断是否存在这三个元素,它们将数字串分为四个子串,其中每个子串的数字 ...

  2. 多益面试题简答题和编程题解析

    今日做完多益的笔试题,五道简答题对于英语渣渣的我来说其实只有三道题,回答的时候都是云里雾里的一脸懵逼,交卷后特意查了一下答案,以此铭记. 1.编程语言和脚本语言的区别 对于程序员而言,目前从事的行业基 ...

  3. 阿里笔试题(2017在线编程题)-- 数串分组 --Java实现

    看到有人写了阿里的面试题,心里痒痒,好久 没搞过这些了,写着实现一下 题目 2017年3月阿里在线编程题(实习内推) 给定一串数字 判断是否存在这三个元素,它们将数字串分为四个子串,其中每个子串的数字 ...

  4. java校招面试题_java校招面试编程题及答案.docx

    java校招面试编程题及答案 java校招面试编程题及答案 Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 集合框 ...

  5. c语言面试编程笔试题,C语言面试编程题

    C语言面试编程题 发布时间:2021-04-10 在C语言中,输入和输出是经由标准库中的一组函数来实现的.在ANSI/ISO C中,这些函数被定义在头文件;中.下面就由第一范文网小编为大家介绍一下C语 ...

  6. 嵌入式笔试面试题(不含编程题)

    嵌入式考试面试题(部分) 该说不说很多厉害的up发表了很多资料,我也有查阅一些,下面是我所永远的点点资料,目前只有填空部分,大家如果看了下面的并且完成了记得私发一份哈哈 那么正题开始!!! 填空 在L ...

  7. ajax代码编程题,关于AJAX管家代码的几个基本问​​题

    //Why are we calling/redefining the xmlHttp variable? 我们不是. // Why define it as createXmlHttpRequest ...

  8. ❤️大厂编程题实战+Leecode练习

    前言+说明 ❤️旺仔兄弟们!如果觉得博主分享的不错,希望能留下您的一键❤️三连❤️(点赞+评论+收藏) ,您的支持就是我的动力❤️,您的三连对我特别重要. 注明:下述题目只用于学习交流所用,禁止用于商 ...

  9. 编程 ul 不能一行显示 跳到下行_史上最全的数控G代码编程详解

    一.G代码功能简述 G00------快速定位 G01------直线插补 G02------顺时针方向圆弧插补 G03------逆时针方向圆弧插补 G04------定时暂停 G05------通 ...

最新文章

  1. Linux下connect超时处理
  2. 简单android音乐播放器课程设计,android音乐播放器课程设计报告.doc
  3. Android Linker学习笔记
  4. Java02-day02【运算符(赋值、关系、逻辑、三元、算数、自增自减)、分支语句(顺序结构、if语句)】
  5. 硬件:LCD和LED相关知识介绍
  6. Python工作笔记-往dll中传入char*类型的参数并且如何接收char*的值
  7. 华为p20云收藏怎么删除_华为平板怎么记笔记?这款云笔记软件帮你
  8. 理想职业计算机程序英语作文,Choosing the Right Career理想的职业英语作文
  9. 计算机网络-扩展路由器
  10. MySQL的详细安装教程和配置过程(附安装包)
  11. SSH2开发简易的购物网站源代码下载
  12. word中带圈字符字体显示大小和位置不正常
  13. 【复盘】互联网老辛七月复盘-年中flag
  14. iphone 图片等比例缩小
  15. C++实现matlab中的interp1和interp2插值
  16. Matlab浮点变定点
  17. Docker拉取splash镜像失败
  18. [转]Android入门基础教程
  19. FinClip Hackathon 那些令人拍案叫绝的项目
  20. statistical thinking in Python EDA

热门文章

  1. 开机黑屏显示html,电脑主机运行正常显示器黑屏怎么解决_开机显示器黑屏但电脑一直在运行如何修复...
  2. 分离出句子中的单词(双指针)(1)
  3. java微信开发API解析(四)-自定义菜单以及个性化菜单实现
  4. 细说 Nervos 经济模型设计
  5. 2017年过去了 我很怀念他
  6. AI质检线路质检能做什么?
  7. 小学计算机学生座次表,小学生开学排座位方法
  8. 如何正确挑选适合我们的网线 | 百能云芯
  9. HMailServer安装指南(亲测可用)
  10. Windows网络通信