草庐IT

php - 什么从我的 PHP 网站过滤无效的 utf8?

我的网站已完全转换为使用utf-8(mysql、httpheader、PHPmb_string等)。我正在做一些渗透测试并尝试将无效的utf发布到其中一个脚本(使用BurpSuite)。但是当我发布无效的utf时,只是对$_POSTvar进行十六进制转储,我看到无效的utf序列在我尝试使用mb_detect_encoding对其进行验证之前已经被清除。这对我来说听起来是个好消息,但我想知道哪一层正在转换POST数据?这是Content-TypeHTTPheader的副作用吗,也许我的网络服务器正在这样做(lighttpd)。或者是PHP本身在填充$_POST时执行此操作?我希望看到无效

php - 无法从 Excel(utf8 格式)中获取正确的字符到 PHP

各种字符编码问题有很多问题和答案,但似乎没有一个能解决我的问题。我每个月都会收到一份需要转换为Prestashop数据的电子表格。我仍然通过首先将.xls转换为.csv来帮助自己,但如果我能一次性完成它会容易得多。我使用PHP-ExcelReader读取以Unicode(UTF-8)格式保存的.xls文件。我的问题是,无论我选择何种输出编码,总会有一些字符无法正确显示。我创建了一个测试页面来准确显示在什么条件下发生的事情:http://www.num1.nl/test.php希望有人能帮忙。 最佳答案 @grahamj42,我知道它

php - 而不是 mb_strtolower()?

GoDaddy不提供用于共享主机的mbstring模块。但我必须使用mb_strtolower()。我正在处理utf-8字符集,我可以使用什么来代替mb_strtolower($string,'UTF-8')?编辑:我将转换波兰语字符。 最佳答案 参见FluxBB的UTF-8模块:https://github.com/fluxbb/utf8 关于php-而不是mb_strtolower()?,我们在StackOverflow上找到一个类似的问题: https:

php - mb_substr 在剥离 UTF-8 文本时在末尾添加 3 个点 (...),而在文本为拉丁文时不添加它们

我有这样的代码:if(strlen($text)>=15)$text=mb_substr($text,0,15,'UTF-8');它可以正常工作,但问题是,当文本是拉丁文(例如英文)时,当它剥离它时,它最后不会显示3个点。另一方面,当文本是其他需要UTF-8编码的语言时,它会在末尾添加3个点。示例:Whatarecellsmadeof被替换为Whatarecells另一方面:で作られた細胞は何ですか被替换为で作られた細...我错过了什么? 最佳答案 发生这种情况是因为strlen()以二进制形式返回字符串的长度,即八位字节数。因为u

php - 带有 BOM 的文件格式 UTF8 导致 "headers already sent"-错误

这个问题在这里已经有了答案:session_start()Error(3个答案)关闭5年前。我收到此错误消息:Warning:Cannotmodifyheaderinformation-headersalreadysentby(outputstartedat/Applications/MAMP/htdocs/---/dbconnect.php:1)in/Applications/MAMP/htdocs/---/functions.phponline84这是dbconnect.php:还试过:如果您需要更多信息,请告诉我。谢谢!

检索大数据库记录 (~5MB) 时 PHP(或 MySQL)崩溃

它没有显示任何错误,只是一个空白页面。我在调用我的函数检索记录之前尝试了die('test')并且它成功了,但是当我在检索行函数之后放置die('test')时,我得到的只是一个空页面(在chrome上它是这样说的:错误324(net::ERR_EMPTY_RESPONSE):服务器关闭连接而不发送任何数据。)..我已经尝试过(128M、-1、64M等)ini_set('memory_limit',-1);运气不好。我正在使用mysqli检索记录和一个简单的查询,如“从tblBackup中选择数据”(数据库中只有1条记录)有什么帮助吗?提前致谢更新:我跟踪了apache错误日志,并在尝

php - 尝试使用 ftp_put 函数上传 .zip 文件,但无法上传大文件(超过 1 MB)

我正在使用以下代码上传.zip文件,但无法上传大小超过1MB的文件:$upload=ftp_put($conn_id,$target_path.'/'.$filename,$source,FTP_BINARY);有什么想法吗? 最佳答案 您是否将php.ini中的max_file_uploads的配置设置更改为更大的值,这些值以MB为单位,因此请提供最大为5的值我相信它应该有效。 关于php-尝试使用ftp_put函数上传.zip文件,但无法上传大文件(超过1MB),我们在StackOv

php - 在 php 中将 latin1 字符串转换为 utf8

这个问题在这里已经有了答案:Convertutf8-characterstoiso-88591andbackinPHP(10个答案)关闭去年。我有这个连接到我的MySQLBD的php文件,BD调用是latin1_swedish_ci这是我的PHP代码:如何在获得回显之前将$row['name']字符串转换为utf8?

php - 使用UTF8的Javascript十六进制到二进制

我将数据作为BINARY(16)存储在SQLite数据库中,其值由PHP的hex2bin函数确定在32个字符的十六进制字符串上。例如,字符串434e405b823445c09cb6c359fb1b7918返回CN@[4EÀ¶ÃYûy。存储在该数据库中的数据需要通过JavaScript进行操作,为此我使用了以下函数(改编自Andris的回答here)://ConverthexadecimaltobinarystringString.prototype.hex2bin=function(){//Definethevariablesvari=0,l=this.length-1,bytes=[

php - 计算支持 UTF8 的数组中单词的实例数

我正在php站点中创建一个jquerytagcloud。在我的mysql数据库中,我有一个“标签”字段,其中会有一个逗号分隔的单词列表。我想生成一系列单词,它们出现的频率。只是为了使事情复杂化,文本将全部使用希伯来语(utf8编码)。在英语中,这个解决方案非常有效:$words=array_count_values(str_word_count($str,1));print_r($words);取自此处php:sortandcountinstancesofwordsinagivenstring对于希伯来语文本,数组未填充。我找到了这篇文章str_word_count()function