如果您对在PHP中解析Javascript文件以提取其中定义的数组的最佳方法和js获取php数组感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解在PHP中解析Javascript文件以提取其中定
如果您对在PHP中解析Javascript文件以提取其中定义的数组的最佳方法和js获取php数组感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解在PHP中解析Javascript文件以提取其中定义的数组的最佳方法的各种细节,并对js获取php数组进行深入的分析,此外还有关于javascript – 从没有循环获取特定对象和数组的最佳方法、javascript – 在jquery库中重新定义方法的最佳方法、javascript – 检查变量是否未定义的最佳实践、javascript – 设置要忽略的类数组的最佳方法的实用技巧。
本文目录一览:- 在PHP中解析Javascript文件以提取其中定义的数组的最佳方法(js获取php数组)
- javascript – 从没有循环获取特定对象和数组的最佳方法
- javascript – 在jquery库中重新定义方法的最佳方法
- javascript – 检查变量是否未定义的最佳实践
- javascript – 设置要忽略的类数组的最佳方法
在PHP中解析Javascript文件以提取其中定义的数组的最佳方法(js获取php数组)
我有一个Javascript文件,它是从遗留应用程序自动生成的,其中定义了一个巨大的数组(以及其他一些函数和东西).这个javascript文件对内容进行搜索,但随着时间的推移,它已经增长到超过2Mb,这可能听起来不多,但每次你想用这个特定的web应用程序进行搜索时你都必须下载它.毋庸置疑,表现非常恶劣.我想要一个简单的方法在js周围放置一个包装器,这样它就不会调用客户端的js,而是调用我的新PHP脚本来搜索内容.
生成的JS文件的布局在每次生成时都是相同的,所以我可以编写一堆特定的修剪和分割,但后来我认为regexp可能是要走的路,但说实话我不是当然,所以我想我会问你可爱的人.
样本来源:
Page[0]=new Array("Some text1","More text1","Final Text1","abc.html");
Page[1]=new Array("Some text2","More text2","xyz.html");
如您所见,每个数组行中至少有一个条目,最后一个条目是要搜索的文件的名称.
无论如何,问题是,regexp是否最好(如果是这样,一些建议的模式会很棒).或者如果我应该用拆分等分割它
干杯
解决方法:
你正在寻找这样的东西.注意我将.js文件作为本地文件,因此我使用file()将其加载到数组中.对于您的实际脚本,如果您的PHP无法在本地访问.js文件,则可能需要file_get_contents().
<?PHP
$lines = file('test.js');
$pages = array();
foreach($lines as $line) {
if(strpos($line, 'new Array') != false) {
preg_match('/Page\[\d\]\s?\=\s?new Array\((\"(.*)",?\s?\n?)+\);/', $line, $matches);
$values = preg_split('/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/', $matches[1]);
$currNo = count($pages);
$pages[$currNo] = array();
for($i = 0; $i < count($values); $i++) {
array_push($pages[$currNo], trim($values[$i], '"'));
}
}
}
var_dump($pages);
对于您的示例,结果将如下所示:
array(2) {
[0]=>
array(4) {
[0]=>
string(10) "Some text1"
[1]=>
string(10) "More text1"
[2]=>
string(11) "Final Text1"
[3]=>
string(8) "abc.html"
}
[1]=>
array(3) {
[0]=>
string(10) "Some text2"
[1]=>
string(10) "More text2"
[2]=>
string(8) "xyz.html"
}
}
请享用!
javascript – 从没有循环获取特定对象和数组的最佳方法
SomeService.get({},function(data){ // this sets xyz as the list of the data retrieved // from the resource within the controllers scope $scope.xyz = data.objects; });
现在$scope.xyz看起来像
[ 0: {id: 1,...more data here ...},1: {id: 2,2: {id: 3,3: {id: 4,4: {id: 5,5: {id: 6,]
我想要做的是使用id属性(而不是列表索引)在xyz中获取一个对象.我知道我可以按如下方式迭代数组.
angular.forEach($scope.xyz,function(obj){ return obj.id == 1;});
但有没有办法我可以做到而不循环列表?
解决方法
>如果数组按id排序,则可以使用二进制搜索算法(O(log n)).
>如果数组索引始终对应于id-1(或类似的简单公式),则可以在O(1)中直接访问它.
如果最初没有满足这些条件,但您需要多次访问id的项目,那么将它们放入该表单(排序/构建哈希映射)可能会有所帮助.
javascript – 在jquery库中重新定义方法的最佳方法
http://twitter.github.com/bootstrap/assets/js/bootstrap-typeahead.js
实现这一目标的一种方法是:
_.extend($.fn.typeahead.Constructor.prototype,{ render: function (items) { // some code } });
假设我想重新定义渲染函数,仅用于特定元素,如…
element.typeahead({ minLength: 3,source: getSource });
我应该如何重新定义渲染函数才能使该元素有效?
P.S:
我正在使用jquery和下划线
解决方法
$.fn.typeaheadCustom = $.fn.typeahead; _.extend($.fn.typeaheadCustom.Constructor.prototype,{ render: function (items) { // some code } }); element.typeaheadCustom({ minLength: 3,source: getSource });
UPDATE
您可能需要深度克隆它:
$.fn.typeaheadCustom = $.extend(true,$.fn.typeahead,{});
javascript – 检查变量是否未定义的最佳实践
我主要是在苦苦挣扎
x === undefined
和
typeof x === 'undefined'
解决方法
第一种方法使用严格比较===运算符来比较未定义的type:
var x; // ... x === undefined; // true
只有在声明变量但未定义变量时,这才会正常工作,即具有未定义的值,这意味着代码中的某个地方有var x,但它从未被赋值.所以它的定义是不确定的.
但是如果变量没有用var关键字声明上面的代码会抛出引用错误:
x === undefined // ReferenceError: x is not defined
在这种情况下,比较类型更可靠:
typeof x == 'undefined' // true
这将在两种情况下都正常工作:如果变量从未被赋值,并且其值实际上是未定义的.
javascript – 设置要忽略的类数组的最佳方法
我在jQuery脚本中有以下if语句,用于检查图像是否具有“忽略”类,如果是,则忽略它.这是脚本在我页面的特定部分中先前找到的图像:
if(!$(this).hasClass('ignore')) {
//do something
}
我如何设置它以便我可以存储一个类数组,然后对该数组进行if语句检查?
解决方法:
像往常一样创建一个数组,并推送您想要忽略的任何类.
在if语句中执行.not()选择器并通过调用join函数传入Array值.
var classes = new Array(".ignore", ".something");
// on a single img
if(!$(this).is(classes.join(",")) {
//do something to one
}
// on a collection of imgs
$("img").not(classes.join(", "));
$("img").not(classes.join(", ")).each(function(){
// do something to one
});
http://jsfiddle.net/hEsPd/1/
关于在PHP中解析Javascript文件以提取其中定义的数组的最佳方法和js获取php数组的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于javascript – 从没有循环获取特定对象和数组的最佳方法、javascript – 在jquery库中重新定义方法的最佳方法、javascript – 检查变量是否未定义的最佳实践、javascript – 设置要忽略的类数组的最佳方法的相关知识,请在本站寻找。
本文标签: