导航:首页 > 编程语言 > phpfilterread

phpfilterread

发布时间:2022-11-14 11:06:56

php如何接收动态数据保存并实时显示到网页上

头部加上超时控制,但对于很多服务器无效,因为服务器输出超时很多在服务器控制,所以建议用cmd脚本方式运行此程序:

<?php
set_time_limit(0); //禁用脚本超时
//Createthesocketandconnect
$socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
$connection=socket_connect($socket,'116。236。128。220',14580);
//Writesometestdatatooursocket
if(!socket_write($socket,"userNoCallpass-1verstest1.0filterb/B* "))
{
echo("<p>Writefailed</p>");
}

if(!file_exists('socket_log.html')){
file_put_contents('socket_log.html','<script>
varxx=setInterval(function(){ //每5秒刷新一次页面
window.location.reload();
},5000);
</script>');
}

//Readanyresponsefromthesocket
while($buffer=socket_read($socket,64,PHP_NORMAL_READ))
{
echojson_encode($buffer);//转换为json数据输出
//记入文件
file_put_contents('socket_log.html',json_encode($buffer),FILE_APPEND);
}
echo("<p>DoneReadingfromSocket</p>");

使用方法:用命令行方式运行此脚本

phpscript.php

脚本会一直运行到接收数据结束,并持续将收到的数据写入socket_log.html文件。

在浏览器打开socket_log.html页面,此页面会自动每5秒刷新一次,来显示最新的数据。

确保程序有权限创建及写入socket_log.html文件

⑵ 如何用php filter

filter是一个function家庭,是一个统称,和sort一样。具体用法可以查看 PHP手册里面的filter函数族里边儿的 filter_*你试试看这样行不,如果还有不明白的咱俩可以一起在后盾人看看视频找找答案呀,多看几遍不就会了

⑶ PHP流(Stream)的概述与使用详解

在现代 PHP 特性中,流或许是最出色但使用率最低的。虽然 PHP 4.3 就引入了流,但是很多开发者并不知道流的存在,因为人们很少提及流,而且流的文档也很匮乏。PHP 官方文档对流的解释如下:

可能看完这段解释后还是云里雾里,我们简化一下,流的作用是在出发地和目的地之间传输数据。出发地和目的地可以是文件、命令行进程、网络连接、ZIP 或 TAR 压缩文件、临时内存、标准输入或输出,或者是通过 PHP 流封装协议实现的任何其他资源。

如果你读写过文件,就用过流;如果你从 php://stdin 读取过数据,或者把输入写入 php://stdout ,也用过流。流为 PHP 的很多 IO 函数提供了底层实现,如 file_get_contents、fopn、fread 和 fwrite 等。PHP 的流函数提供了不同资源的统一接口。

我们可以把流比作管道,把水(资源数据)从一个地方引到另一个地方。在水从出发地到目的地的过程中,我们可以过滤水,可以改变水质,可以添加水,也可以排出水。

流式数据的种类各异,每种类型需要独特的协议,以便读写数据,我们称这些协议为 流封装协议 。例如,我们可以读写文件系统,可以通过 HTTP、HTTPS 或 SSH 与远程 Web 服务器通信,还可以打开并读写 ZIP、RAR 或 PHAR 压缩文件。这些通信方式都包含下述相同的过程:

1.开始通信
2.读取数据
3.写入数据
4.结束通信

虽然过程是一样的,但是读写文件系统中文件的方式与收发 HTTP 消息的方式有所不同,流封装协议的作用是使用通用的接口封装这种差异。

每个流都有一个协议和一个目标。指定协议和目标的方法是使用流标识符:<scheme>://<target>,其中 <scheme> 是流的封装协议,<target> 是流的数据源。

http://流封装协议

下面使用 HTTP 流封装协议创建了一个与 Flicker API 通信的 PHP 流:

不要以为这是普通的网页 URL,file_get_contents() 函数的字符串参数其实是一个流标识符。http 协议会让 PHP 使用 HTTP 流封装协议,在这个参数中,http 之后是流的目标。

我们通常使用 file_get_contents()、fopen()、fwrite() 和 fclose() 等函数读写文件系统,因为 PHP 默认使用的流封装协议是 file://,所以我们很少认为这些函数使用的是 PHP 流。下面的示例演示了使用 file:// 流封装协议创建一个读写 /etc/hosts 文件的流:

我们通常会省略掉 file:// 协议,因为这是 PHP 使用的默认值。

php://流封装协议

编写命令行脚本的 PHP 开发者会感激 php:// 流封装协议,这个流封装协议的作用是与 PHP 脚本的标准输入、标准输出和标准错误文件描述符通信。我们可以使用 PHP 提供的文件系统函数打开、读取或写入下面四个流:

1. php://stdin :这是个只读 PHP 流,其中的数据来自标准输入。PHP 脚本可以使用这个流接收命令行传入脚本的信息;
2. php://stdout :把数据写入当前的输出缓冲区,这个流只能写,无法读或寻址;
3. php://memory :从系统内存中读取数据,或者把数据写入系统内存。缺点是系统内存有限,所有使用 php://temp 更安全;
4. php://temp :和 php://memory 类似,不过,没有可用内存时,PHP 会把数据写入这个临时文件。

其他流封装协议

PHP 和 PHP 扩展还提供了很多其他流封装协议,例如,与 ZIP 和 TAR 压缩文件、FTP 服务器、数据压缩库、Amazon API、Dropbox API 等通信的流封装协议。需要注意的是,PHP 中的 fopen()、fgets()、fputs()、feof() 以及 fclose() 等函数不仅可以用来处理文件系统中的文件,还可以在所有支持这些函数的流封装协议中使用。

自定义流封装协议

我们还可以自己编写 PHP 流封装协议。PHP 提供了一个示例 StreamWrapper 类,演示如何编写自定义的流封装协议,支持部分或全部 PHP 文件系统函数。关于如何编写,具体请参考以下文档:

http://php.net/manual/zh/class.streamwrapper.php
http://php.net/manual/zh/stream.streamwrapper.example-1.php

有些 PHP 流能够接受一系列可选的参数,这些参数叫流上下文,用于定制流的行为。不同的流封装协议使用的流上下文有所不同,流上下文使用 stream_context_create() 函数创建,这个函数返回的上下文对象可以传入大多数文件系统函数。

例如,你知道可以使用 file_get_contents() 发送 HTTP POST 请求吗?使用一个流上下文对象即可实现:

流过滤器
目前为止我们讨论了如何打开流,读取流中的数据,以及把数据写入流。不过,PHP 流真正强大的地方在于过滤、转换、添加或删除流中传输的数据,例如,我们可以打开一个流处理 Markdown 文件,在把文件内容读入内存的过程中自动将其转化为 HTML。

运行该脚本,输出的都是大写字母:

我们还可以使用 php://filter 流封装协议把过滤器附加到流上,不过,使用这种方式之前必须先打开 PHP 流:

这个方式实现效果和 stream_filter_append() 函数一样,但是相比之下更为繁琐。不过,PHP 的某些文件系统函数在调用后无法附加过滤器,例如 file() 和 fpassthru(),使用这些函数时只能使用 php://filter 流封装协议附加流过滤器。

自定义流过滤器
我们还可以编写自定义的流过滤器。其实,大多数情况下都要使用自定义的流过滤器,自定义的流过滤器是个 PHP 类,继承内置的 php_user_filter 类( http://php.net/manual/zh/class.php-user-filter.php ),且必须实现 filter()、onCreate() 和 onClose() 方法,最后,必须使用 stream_filter_register() 函数注册自定义的流过滤器。

然后,我们必须使用 stream_filter_register() 函数注册这个自定义的 DirtyWordsFilter 流过滤器:

第一个参数用于标识这个自定义过滤器的过滤器名,第二个参数是这个自定义过滤器的类名。接下来就可以使用这个自定义的流过滤器了:

修改 test.txt 内容如下:

运行上面的自定义过滤器脚本,结果如下:

stream_bucket_append函数:为队列添加数据
stream_bucket_make_writeable函数:从操作的队列中返回一个数据对象
stream_bucket_new函数:为当前队列创建一个新的数据
stream_bucket_prepend函数:预备数据到队列
stream_context_create函数:创建数据流上下文
stream_context_get_default函数:获取默认的数据流上下文
stream_context_get_options函数:获取数据流的设置
stream_context_set_option函数:对数据流、数据包或者上下文进行设置
stream_context_set_params函数:为数据流、数据包或者上下文设置参数
stream__to_stream函数:在数据流之间进行复制操作
stream_filter_append函数:为数据流添加过滤器
stream_filter_prepend函数:为数据流预备添加过滤器
stream_filter_register函数:注册一个数据流的过滤器并作为PHP类执行
stream_filter_remove函数:从一个数据流中移除过滤器
stream_get_contents函数:读取数据流中的剩余数据到字符串
stream_get_filters函数:返回已经注册的数据流过滤器列表
stream_get_line函数:按照给定的定界符从数据流资源中获取行
stream_get_meta_data函数:从封装协议文件指针中获取报头/元数据
stream_get_transports函数:返回注册的Socket传输列表
stream_get_wrappers函数:返回注册的数据流列表
stream_register_wrapper函数:注册一个用PHP类实现的URL封装协议
stream_select函数:接收数据流数组并等待它们状态的改变
stream_set_blocking函数:将一个数据流设置为堵塞或者非堵塞状态
stream_set_timeout函数:对数据流进行超时设置
stream_set_write_buffer函数:为数据流设置缓冲区
stream_socket_accept函数:接受由函数stream_ socket_server()创建的Socket连接
stream_socket_client函数:打开网络或者UNIX主机的Socket连接
stream_socket_enable_crypto函数:为一个已经连接的Socket打开或者关闭数据加密
stream_socket_get_name函数:获取本地或者网络Socket的名称
stream_socket_pair函数:创建两个无区别的Socket数据流连接
stream_socket_recvfrom函数:从Socket获取数据,不管其连接与否
stream_socket_sendto函数:向Socket发送数据,不管其连接与否
stream_socket_server函数:创建一个网络或者UNIX Socket服务端
stream_wrapper_restore函数:恢复一个事先注销的数据包
stream_wrapper_unregister函数:注销一个URL地址包

整合资料
本文整合于以下两篇文章

https://blog.csdn.net/qq756684177/article/details/81518647

https://xueyuanjun.com/post/7459.html

⑷ php5.6.25 php_win32api.dll扩展类

一、准备工作 上pkgs/download/nginx-1/download/nginx-1206/get/php-5.4.14.tar.gz/from/this/mirror // 解压 [root@pangou php]# tar -zxvf php-5.4.14.tar.gz 安装依赖包 [root@pangou php]# yum install -y libxml2-devel libjpeg-devel libpng-devel freetype-devel openssl-devel libcurl-devel libmcrypt-devel 编译php [root@pangou php]# ls php-5.4.14 php-5.4.14.tar.gz [root@pangou php]# cd php-5.4.14 [root@pangou php-5.4.14]# pwd /root/Downloads/php/php-5.4.14 [root@pangou php-5.4.14]# ls acinclude.m4 CREDITS ltmain.sh NEWS README.MAILINGLIST_RULES README.TESTING stamp-h.in aclocal.m4 ext main pear README.namespaces README.TESTING2 stub.c build EXTENSIONS makedist php5.spec.in README.NEW-OUTPUT-API README.UNIX-BUILD-SYSTEM svnclean.bat buildconf footer Makefile.frag php.gif README.PARAMETER_PARSING_API README.WIN32-BUILD-SYSTEM tests buildconf.bat generated_lists Makefile.gcov php.ini-development README.PHP4-TO-PHP5-THIN-CHANGES run-tests.php TSRM CODING_STANDARDS genfiles Makefile.global php.ini-proction README.REDIST.BINS sapi UPGRADING config.guess header makerpm README.EXTENSIONS README.RELEASE_PROCESS scripts UPGRADING.INTERNALS config.sub INSTALL missing README.EXT_SKEL README.SELF-CONTAINED-EXTENSIONS server-tests-config.php vcsclean configure install-sh mkinstalldirs README.GIT-RULES README.STREAMS server-tests.php win32 configure.in LICENSE netware README.input_filter README.SUBMITTING_PATCH snapshot Zend [root@pangou php-5.4.14]# ./configure --prefix=/opt/php --with-config-file-path=/opt/php/etc --with-mysql=/usr/ --with-mysqli=/usr/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-mime-magic // 编译时间可能有点长。。。 // 编译成功后,安装 [root@pangou php-5.4.14]# make && make install // 安装时间也比较长 安装成功后,php的位置就应该在/opt/php目录下,接下去就是配置 // 复制配置文件到配置目录下 [root@pangou php-5.4.14]# cp /root/Downloads/php/php-5.4.14/php.ini-proction /opt/php/etc/php.ini [root@pangou php-5.4.14]# cp /opt/php/etc/php-fpm.conf.default /opt/php/etc/php-fpm.conf [root@pangou php-5.4.14]# cd /opt/php/etc/ [root@pangou etc]# ls php-fpm.conf php-fpm.conf.default php.ini // 然后配置nginx的配置文件,让其可以运行php [root@pangou etc]# cd /opt/nginx/conf/ [root@pangou conf]# ls fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default [root@pangou conf]# vim nginx.conf 1、去掉 #user nobody; 的#号, 变成 user nobody; 2、去掉 #location ~ .php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} 之前的#号, 并修改 fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 为 fastcgi_param SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name; 最终修改后的内容为: location ~ .php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name; include fastcgi_params; } 重启nginx服务,并开启php-fpm [root@pangou ~]# /opt/nginx/sbin/nginx [root@pangou ~]# /opt/php/sbin/php-fpm // 创建phpinfo文件 [root@pangou ~]# vim /opt/nginx/html/phpinfo.php 内容为 phpinfo(); ?> 访问127.0.0.1/phpinfo.php 安装成功。mysql,mysqli等扩展都有。 这边有一点偷懒,并没有编译安装mysql,而是使用yum安装的mysql。

⑸ PHP是怎么进行输入输出的

php://stdin, php://stdout 和 php://stderr
php://stdin,php://stdout 和 php://stderr允许访问 PHP 进程相应的输入或者输出流。
php://input
php://input 是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA(原生的post数据),因为它不依赖于特定的 php.ini 指令,内存消耗更少。如下例:
<formaction=method=post
<inputtype=textname=test<inputtype=submitname=/</form<?phpecho file_get_contents(php://input);?结果:
php://output
php://output 是一个只写的数据流, 允许你以 print 和 echo 一样的方式 写入到输出缓冲区。
php://fdphp://fd 允许直接访问指定的文件描述符。 例如 php://fd/3 引用了文件描述符 3。
php://memory 和 php://temp
php://memory 和 php://temp 是一个类似文件 包装器的数据流,允许读写临时数据。 两者的唯一区别是 php://memory 总是把数据储存在内存中, 而 php://temp 会在内存量达到预定义的限制后(默认是 2MB)存入临时文件中。 临时文件位置的决定和 sys_get_temp_dir() 的方式一致。
php://filter
php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。参数如下:如下例:<?php/* 这会以大写字母输出的全部内容 */

⑹ php自定义一个函数用来过滤表单的。。比如说filter($_POST);调用filter函数的时

function filter($array){
foreach($array as $k=>$v){
$array[$k]=htmlspecialchars(strip_tags($v));
$array[$k]=eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',$array[$k];
}
}

⑺ 帝国cms中php和Apache 如何升级

帝国cms中php和Apache 如何升级???
问的问题都有问题。

是升级php和apache
然后重新安装帝国cms就行啦。

升级前先备份,
php升级直接覆盖安装就可以了。
Apache升级步骤
找个访问量小的时候,进行如下操作:
1 备份好配置文件,网站代码文件, moudeles文件
2 卸载老版本。
3 修改老版本安装文件夹名,
4 安装新版本和老版本在同一路径。(我是选择了第三步不修改老版本文件夹名已经直接安装新版本到另外一个路径)
5 恢复moudeles文件,然后恢复配置文件
6 重启,是否成功,没有成功看日志提示
7 查看各个网站是否成功。这一步可以在升级完PHP与MySQL再测试。

⑻ PHP $filter = $_REQUEST['filter'];'filter'里面会有些啥解释下,O(∩_∩)O谢谢

$filter=$_REQUEST['filter'];

这个得看你的程序前后是怎么写的$_REQUEST是指可以接收get和post方式传过来的数据,而filter是你自己定义的,是什么就只有你自己知道了

⑼ filter函数没有的数据能不能不显示

能。Filter函数(Filterfunction)是PHP核心的组成部分,作用是过滤。PHP过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤。filter函数没有的数据能不显示,函数是PHP核心的组成部分。无需安装即可使用这些函数。

⑽ PHP如何从文本中提取指定行数内容

PHP如何从文本中提取指定行数内容?在php中,通过fopen()方法打开文件,在while中使用fgets()方法获取每行数据,每读到一行,就使用标识记录一次,通过累计记录数计算出文件的行数。下面介绍实现的过程。
方法/步骤分步阅读
1
/7
新建一个php文件,命名为handle.php,用于讲解PHP怎么获取文件的行数。
2
/7
新建一个文本文件,命名为test.txt,在里面输入四行数据,分别是aaa,bbb,ccc,ddd。
3
/7
在handle.php文件里,使用fopen方法以只读方式打开test.txt文件,代码如下:
4
/7
在handle.php文件里,创建一个初始变量i,用于保存文件内容的行数。
5
/7
通过while()语句,使用fgets方法从文件指针中读取一行,每读取一行,变量i自加一,直到到达文件末尾停止while的执行。
注:!feof($handle),函数检测是否已到达文件末尾。
6
/7
最后,使用echo输出文件的行数,并通过fclose关闭文件资源。代码如下:
7
/7
在浏览器执行handle.php文件,查看输出的行数,执行的结果为4行。
内容仅供参考并受版权保护

阅读全文

与phpfilterread相关的资料

热点内容
安卓源码编译输入脚本没反应 浏览:44
phpmysql自增 浏览:166
把ppt保存为pdf 浏览:533
汽车密封件加密配件 浏览:887
黑马程序员15天基础班 浏览:560
java调整格式 浏览:521
香港云服务器租用价 浏览:78
linuxsublime3 浏览:560
imac混合硬盘命令 浏览:277
沈阳用什么app租房车 浏览:857
00后高中生都用什么app 浏览:237
戴尔塔式服务器怎么打开独立显卡 浏览:807
医疗程序员招聘 浏览:597
住宿app可砍价是什么意思 浏览:133
java跳出语句 浏览:55
javastring个数 浏览:928
人工免疫算法应用 浏览:79
有什么app能收听俄罗斯广播电台 浏览:34
2015考研红宝书pdf 浏览:443
程序员几月跳槽合适 浏览:444