小编gen*_*sis的帖子

将字符串修剪为长度忽略HTML

这个问题很具挑战性.我们的应用程序允许用户在主页上发布新闻.该新闻是通过允许HTML的富文本编辑器输入的.在主页上,我们只想显示新闻项的截断摘要.

例如,这是我们正在显示的全文,包括HTML


为了在办公室,厨房里腾出更多的空间,我把所有随机的杯子拿出来放在午餐室的桌子上.除非你对1992年的Cheyenne Courier杯子或者1997年的BC Tel Advanced Communications杯子的所有权感到强烈,否则它们将放在一个盒子里并捐赠给比我们更需要杯子的办公室.

我们希望将新闻项目修剪为250个字符,但不包括HTML.

我们用于修剪的方法目前包括HTML,这导致一些HTML重大的新闻帖子被大大截断.

例如,如果上面的例子包含大量的HTML,它可能看起来像这样:

为了在办公室,厨房里腾出更多的空间,我已经拉了......

这不是我们想要的.

有没有人有一种标记HTML标签的方法,以保持字符串中的位置,对字符串执行长度检查和/或修剪,并恢复字符串中旧的位置的HTML?

html string truncate tokenize

9
推荐指数
1
解决办法
7006
查看次数

MSIE 8中JavaScript解析错误的原因

给出类似的东西

var obj = {
     foo: function(){
         try{
             doSomething();
          }catch(ex){
               //@TODO - report error
          }
     }
 }
Run Code Online (Sandbox Code Playgroud)

MSIE 8会在@TODO所在的地方抛出一个"在线#上缺少分号".

在我完成了几十个@ TODO之后!TODO,MSIE能够正确地解析脚本,生活还在继续.我在这里遗漏了什么,MSIE是否使用某种非标准机制,比如// @ PRAGMA?

谷歌搜索@TODO或// @并没有带来任何有用的东西.

javascript internet-explorer-8

9
推荐指数
1
解决办法
1011
查看次数

整数没有显示为die()参数?

我有这个奇怪的问题.在调试时,我有时候代码看起来像这样

<?php
$var = 15;
die($var);
Run Code Online (Sandbox Code Playgroud)

die() 功能有效,但没有输出

但是,这一个有效

<?php
$var = 15;
die($var."<-");
Run Code Online (Sandbox Code Playgroud)

http://sandbox.phpcode.eu/g/81462.php

这怎么可能?我错过了什么?还是错误?

php debugging int behavior

9
推荐指数
1
解决办法
1231
查看次数

PHP-GD:处理Unicode字符

我正在开发一个Web服务,使用用户选择的TTF字体使用PHP GD扩展来呈现字符.

这在ASCII-land中运行良好,但有一些问题:

  1. 要呈现的字符串以UTF-8形式出现.我想将用户可选字体列表限制为只能正确呈现字符串的字体,因为某些字体只有ASCII字符的字形,ISO 8601等.

  2. 在包含一些装饰字符的情况下,可以很好地渲染所选字体中的大多数字符并在Arial中呈现装饰字符(或者包含扩展字形的任何字体).

看起来PHP-GD似乎不支持充分查询字体元数据以确定字符是否可以以给定字体呈现.将字体指标变为PHP的好方法是什么?是否有可以以XML或其他可解析格式转储的命令行实用程序?

php unicode fonts gd

8
推荐指数
1
解决办法
1898
查看次数

毛里求斯国旗问题

我已经为荷兰国旗问题找到了解决方案.

但是这一次,我想尝试更难的事情:毛里求斯国旗问题 - 4种颜色,而不是3种.有效算法的建议吗?

基本上,毛里求斯国旗问题的重点是如何根据毛里求斯国旗(红色,蓝色,黄色,绿色)中的颜色顺序对给定的对列表进行排序.并且数字也必须按升序排序.

方案编程示例输入:

((R.3)(G.6)(Y.1)(B.2)(Y.7)(G.3)(R.1)(B.8))

输出:

((R.1)(R.3)(B.2)(B.8)(Y.1)(Y.7)(G.3)(G.6))

algorithm scheme

8
推荐指数
2
解决办法
2501
查看次数

翻转python中的位

给定一个整数n,我想切换该数字的二进制表示中的所有位,从低到高.为此,我执行以下操作[bit_string是一个包含1和0的字符串,是n的二进制表示]

for i in range(lower,upper+1):
   n ^= (1 << len(bit_string)-1-i) #Toggle the ith bit
Run Code Online (Sandbox Code Playgroud)

然后,我还需要确定给定一个范围,比如从低到高,设置了多少位.我的代码如下:

number_of_ones = 0
for i in range(lower,upper+1):
    if(n & (1 << len(bit_string)-1-i)): #Check the ith bit
      number_of_ones+=1
Run Code Online (Sandbox Code Playgroud)

但是,如果n非常大,我认为这些算法会很慢.有没有办法让这两项操作更快/更有效?

谢谢

python algorithm

8
推荐指数
1
解决办法
8006
查看次数

如何确定用户是否点击了我网站上的Facebook赞按钮?

我希望在我的网站上包含内容,只有当用户点击同一页面上的Facebook赞按钮时才会显示该内容.我在文档中看到有"edge.create"事件,我可以订阅但不会只在用户第一次喜欢该页面时触发?如果用户已经喜欢该页面,我希望他能够再次回来再次下载,而不必再次与之不同.

我还注意到这些信息可以通过FQL等查询,但目前还不清楚auth的要求是什么.

没有额外的身份验证,是否可以以某种方式执行此操作?如果他已经登录,我希望用户只有一步.

javascript api facebook facebook-like

8
推荐指数
1
解决办法
4147
查看次数

AJAX表单提交后永不停止的"连接"消息

我有一个类,它允许通过AJAX提交带有文件类型输入的表单.它创建一个隐藏IFRAME元素,更改表单target属性,以便它提交IFRAME,提交表单,然后将目标更改回原来的状态.它还添加了一个onLoad事件,IFRAME所以我可以得到一个回调.该onLoad函数还会IFRAME在触发回调函数之前从页面中删除该函数.

该类工作正常,我得到了预期的回调.在Firebug的Net面板中,我看到了请求,我看到了响应,一切都很顺利.但是,一旦提交开始,页面的浏览器选项卡将更改为"正在连接"加载微调器,并且永远不会更改回来.它使标签显示正在加载,如果我打开浏览器,这将持续数天.

困扰我的永无止境的

那么问题是:有没有办法让我手动停止,或者是否有其他方法可以阻止它启动?

以下是从Net面板中获取的响应标题:

Date    Fri, 02 Sep 2011 15:23:15 GMT
Server  Apache/2.2.10 (Win32) PHP/5.3.1
X-Powered-By    PHP/5.3.1
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma  no-cache
Set-Cookie  PHPSESSID=agncdnha86mtci7dmuvriobak2; path=/
Content-Length  165
Keep-Alive  timeout=5, max=100
Connection  Keep-Alive
Content-Type    text/html
Run Code Online (Sandbox Code Playgroud)

并在下面捕获Net面板.POST来自提交表单,GET是由回调函数引起的,它正在改变页面上图像的来源.

Firebug的Net面板的屏幕截图

这不是特定于此页面,它发生在我使用此技术通过提交文件/图像的任何地方IFRAME.这会影响我当前版本的Firefox(6.0),但也影响以前的版本(5.x,4.x,3.x).IFRAME在加载后从页面中删除它的事实使得这尤其令人困惑 - 即使请求永远不会完成,元素的删除应该有效地杀死/停止和"连接"浏览器认为正在发生的事情.

更新 根据@Sidnicious的回答,我在回调函数中添加了一个超时,以引入删除IFRAME元素的延迟.我试验了延迟的长度,即使1ms的延迟也足够了.这当然有资格作为解决方案,但我仍然想知道是否有人可以了解它的原因,最好是避免一起使用超时.我已经在下面包含了修改后的代码(带有超时),以防它有用.这是onLoad为事件IFRAME(io …

javascript ajax iframe firefox mootools

8
推荐指数
1
解决办法
1217
查看次数

查找2D地图的无法到达的部分

我不希望你为我解决这个问题,我只是想问一些想法.

这是下面的输入,它代表一张地图.'x'代表土地,而点 - 水.因此,使用'x',您可以在地图上表示"孤岛".

xxx.x...xxxxx        
xxxx....x...x        
........x.x.x        
..xxxxx.x...x       
..x...x.xxx.x        
..x.x.x...x..        
..x...x...xxx        
...xxxxxx....        
x............ 
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,有一些岛屿是封闭的,即如果有一些船在其领土内,它将无法离开,因为:

..xxxxx.     
..x...x.        
..x.x.x.        
..x...x.
..xxxxx.
Run Code Online (Sandbox Code Playgroud)

还有一些开放的岛屿可以摆脱它们,例如:

.xxxxx        
.x...x        
.x.x.x        
.xxx.x       
Run Code Online (Sandbox Code Playgroud)

问题在于:对于上面给定的NxM地图,计算任何岛屿的开放状态,以及关闭的数量.

我再说一遍:我不想让你解决它,只需要一些吸气,解决的想法.谢谢

algorithm

7
推荐指数
1
解决办法
623
查看次数

在Pacman中,幽灵是否会独立选择路径来寻找pacman?

所以我最近在我的手机上玩了很多pacman,我想知道鬼魂是如何独立工作的.我在考虑如何编程.

我想到的一个选择是线程.所有4个幽灵都在自己的线程中运行,并以某种方式找到了pacman的位置.但是有四个线程正在工作并且同步会很困难似乎有点太多了.此外,谷歌在Javascript中写了pacman,它不支持线程,所以它可以在没有线程的情况下完成,并且必须有一种更简单的方法.

我的第二个想法是事件处理程序.我只是将pacman将触发的'directionChanged'事件连接到4个事件处理程序,每个鬼程一个.然后每个幽灵决定走向pacman的路径.我认为这更有可能发生了什么.但是如果事件处理程序是同步执行的话,它会变慢,因为路径必须按顺序计算,第4个鬼魂需要时间来改变方向,这可能会产生可见的滞后(可能).此外,当他们撞墙时,鬼魂会自己发射一个事件,他们的事件处理程序会改变鬼魂的方向.但考虑到pacman改变方向的频率和四个鬼魂的反应,事件处理程序似乎也有点太多了.

我说上述想法会有点太多,因为记得游戏是在30年前编写的,当cpu时间和内存稀缺时,所以我认为必须有一个更简单的方法.

而且,即使pacman仍然存在,鬼魂似乎也在遵循不同的路径.所有鬼魂都使用完全不同或不同优化的路径寻找算法吗?

我更感兴趣的是找出所有鬼魂似乎同时为他们自己的工作方式而不是他们使用的路径查找算法.思考?

pacman

7
推荐指数
2
解决办法
1560
查看次数