我想使用PHP在二进制文件中找到特定的字节序列.我用十六进制表示这个序列,以避免输入太多的0和1.要找到的序列是0x4749524f
.这是我现在提出的工作解决方案:
$mysequence = "4749524f";
$f = fopen($filename, "r") or die("Unable to open file!");
while(!feof($f)){
$seq = fread($f, 4);
if(bin2hex($seq) == $mysequence){
echo "found!";
break;
}
else if(!feof($f)) fseek($f, -3, SEEK_CUR);
}
Run Code Online (Sandbox Code Playgroud)
算法的作用很简单:
为什么我要回3个字节?因为如果这是文件的内容:
0000 4749 524f 0000 01b0 0013
Run Code Online (Sandbox Code Playgroud)
如果我没有回到3字节,我将0000 4749
在第一次迭代,524f 0000
第二次,01b0 0013
第三次读取,你可以看到我错过了序列.
问题:它像地狱一样缓慢......应用程序必须使用最大50MB的文件,因此需要永远找到这个序列.
PHP中是否有一个优化的功能可以完成这项工作?这样做有更快(不像我的笨)的方式吗?
我被迫使用AWS S3的第2版,因为我无法在此服务器上将PHP更新为5.5以便使用版本3.
我制作了这个PHP脚本来从AWS下载文件,效果很好:
//http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.S3.S3Client.html#_createPresignedUrl
// Get a command object from the client and pass in any options
// available in the GetObject command (e.g. ResponseContentDisposition)
$command = $s3Client->getCommand('GetObject', array(
'Bucket' => $bucket,
'Key' => $objectKey,
'ResponseContentDisposition' => 'attachment; filename="' . $originFilename . '"'
));
// Create a signed URL from the command object that will last for
// 10 minutes from the current time
$signedUrl = $command->createPresignedUrl('+1000 minutes');
$file = file_get_contents($signedUrl);
Run Code Online (Sandbox Code Playgroud)
问题是我想确保file_get_contents()
下载整个文件并检测并修复任何错误(例如服务器在下载期间脱机等等),所以我认为以下流程:
那么,如何从AWS获取文件大小?我找到了这个,但它对我的版本不起作用.
我怎样才能告诉函数gettext() 将一个单词翻译成一个独立于当前语言的特定语言?
我们来举个例子吧
我们假设默认语言是英语.我们来一词树.在意大利语中它将是albero.
如果我正在浏览我的网站的英文版本,该页面的所有内容将以英文翻译.特别是,如果我在我的PHP代码中有行echo _('tree');
,将输出树.
我想要完成的是在我浏览英文版网站时输出albero.我很乐意告诉_()只翻译意大利语页面特定部分中的特定单词,即使当前语言是英语.在我的脑海中,它就像_('tree', 'it_IT')
it_IT告诉gettext忽略英语并用意大利语覆盖它只是为了那个调用.
是否可以使用gettext()来做到这一点?如果有,怎么样?如果不是,还有其他解决方案吗
我正在绘制由 HighCharts 中的一系列点制作的地图。我希望该地图能够正确缩放并成为一个完美的正方形。
因此,我将图表高度和宽度设置为相同的值:
$(function () {
$('#map-container').highcharts({
chart: {
type: 'scatter',
zoomType: 'xy',
height: 225,
width: 225
},
title: {
text: null
},
subtitle: {
text: null
},
yAxis: {
gridLineWidth: 0,
minorGridLineWidth: 0,
lineColor: 'transparent',
minorTickLength: 0,
tickLength: 0,
min: <?php echo $lat_bon_min; ?>,
max: <?php echo $lat_bon_max; ?>,
labels: {
enabled: false
},
title: {
text: null
}
},
xAxis: {
gridLineWidth: 0,
minorGridLineWidth: 0,
lineColor: 'transparent',
minorTickLength: 0,
tickLength: 0,
min: <?php echo $lon_bon_min; ?>,
max: …
Run Code Online (Sandbox Code Playgroud) 由于我使用GMAIL发送大量电子邮件,我决定使用脚本自动化此过程并遵循本教程.教程:从电子表格发送电子邮件
"消息"由我创建的另一个函数生成,称为prepareEmails.
问题如下:
1)我怎样才能告诉prepareEmails添加我的个人签名?我不能简单地将其文本复制到该函数中,因为我的签名包含一个图像(我有URL),我希望该图像进入签名.
2)我怎样才能使我的签名成为BOLD?
谢谢大家
gmail google-sheets google-apps-script google-spreadsheet-api
奇怪的事情发生了......我很想分享此链接:https://www.racebooking.net/it/moto/post/5812/giro-straordinario-di-fabrizio-perotti-a-bordo-del/ 在Facebook,但图片未显示。
如果我通过Open Graph Debugger调试它并“获取新的scrape信息”,则一切看起来都很好,我没有收到任何错误,并且检测到了图像,但未在链接预览中显示。
第一次发生,直到几天前,我的网站一切正常。任何的想法?
我创建了一个非常类似于Facebook墙页的页面:每个帖子都有一些帖子,评论列表和每个帖子的"发送"按钮,用于发送新评论.
在以下示例中:
这是页面的一部分.
<!--my first post-->
<div id="div1" class="mypost">
<div class="send-comment"></div>
</div>
<!--my second post-->
<div id="div2" class="mypost">
<div class="send-comment"></div>
</div>
<!--my js code-->
<script text="type/javascript">
$('.send-comment').click(function(){
//send comment
});
</script>
Run Code Online (Sandbox Code Playgroud)
当用户向下滚动页面时,其他帖子将注入页面,结果如下:
<!--my first post-->
<div id="div1" class="mypost">
<div class="send-comment"></div>
</div>
<!--my second post-->
<div id="div2" class="mypost">
<div class="send-comment"></div>
</div>
<!--third post, added dynamically with jQuery-->
<div id="div3" class="mypost">
<div class="send-comment"></div>
</div>
<!--my js code-->
<script text="type/javascript">
$('.send-comment').click(function(){
//send comment
});
</script> …
Run Code Online (Sandbox Code Playgroud) php ×3
ajax ×1
amazon-s3 ×1
facebook ×1
gettext ×1
gmail ×1
highcharts ×1
html ×1
javascript ×1
jquery ×1
optimization ×1
plot ×1
search ×1
translation ×1