我正在开发一个应用程序,它从一组站点获取所有URL并以数组形式或JSON显示它.
我可以使用for循环,问题是我尝试10个URL时的执行时间,它给我一个错误说exceeds maximum execution time
.
在搜索时我发现了这个 multi curl
我还发现了这个快速PHP CURL多个请求:使用CURL检索多个URL的内容.我试图添加我的代码,但没有工作,因为我不知道如何使用该功能.
希望你帮帮我.
谢谢.
这是我的示例代码.
<?php
$urls=array(
'http://site1.com/',
'http://site2.com/',
'http://site3.com/');
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$urlContent = file_get_contents($url);
$dom = new DOMDocument();
@$dom->loadHTML($urlContent);
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for($i = 0; $i < $hrefs->length; $i++){
$href = $hrefs->item($i);
$url = $href->getAttribute('href');
$url = filter_var($url, FILTER_SANITIZE_URL);
// validate url
if(!filter_var($url, FILTER_VALIDATE_URL) === false){
echo '<a href="'.$url.'">'.$url.'</a><br />';
}
}
$conn[$i]=curl_init($url);
$fp[$i]=fopen ($g, …
Run Code Online (Sandbox Code Playgroud) 我正在研究一个删除数组中重复项的函数。这个函数的问题是,如果连续重复项少于 5 个,它将保留,而上面的 5 个将成为一个数字。
我的问题是无法弄清楚逻辑。
希望你能帮我。
谢谢。
示例代码
function removeDuplicates($array){
$result = array();
$lastVal = null;
$temp_array = array();
foreach ($array as $key => $value) {
# code...
if($value != $firstVal){
$result[] = $value;
}else{
$temp_array[] = $value;
}
$lastVal = $value;
}
return $result;
}
Run Code Online (Sandbox Code Playgroud)
样本
$array = array(1,2,4,1,1,1,1,0,8,7,2,0,0,8,8,8,8,8,8,8,2,4,1,5);
Run Code Online (Sandbox Code Playgroud)
预期结果
[1,2,4,1,1,1,1,0,8,7,2,0,0,8,2,4,1,5]
Run Code Online (Sandbox Code Playgroud) 我有一个从 1 到 20 的简单循环。我想要做的是使用按钮单击停止循环。我所做的是,我设置了一个条件,即在单击按钮时变量的值stop
将更改为 1,这将触发break
. 但值没有改变。
var stop = 0;
for(let i = 1; i <= 20; i++){
if(stop === 1){
break;
}
setTimeout(function(){
$('ul').append('<li>'+ i +'</li>');
},i * 500);
}
$('button').click(function(){
stop = 1;
});
Run Code Online (Sandbox Code Playgroud)
ul li{
list-style-type: none;
float: left;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul></ul>
<br>
<button>stop</button>
Run Code Online (Sandbox Code Playgroud)
我正在研究显示错误消息的简单表单,我的问题是当我尝试在警报消息上添加图标时,图标没有显示。我正在使用Feathericons来生成图标。
我制作了一个简单的片段,图标正常显示,但是当我使用 jquery 显示它时,它不起作用。
希望你能帮助我。
谢谢。
$(document).ready(function(){
feather.replace();
$('button').click(function(){
$('.alert').html('<i data-feather="activity"></i>');
});
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/feather-icons@4.10.0/dist/feather.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>show Icon</button>
<div class="alert"></div>
<hr>
<i data-feather="home"></i>
<i data-feather="alert-circle"></i>
<i data-feather="globe"></i>
Run Code Online (Sandbox Code Playgroud)
所以我有这个数组。
["2020-01-31 18:31:01", "2020-02-03 14:04:30", "2020-02-04 05:58:48", "2020-02-04 14:11:16"]
Run Code Online (Sandbox Code Playgroud)
我喜欢将它转换为对象。
0: {date: "2020-01-31", time: ["8:31:01"]}
1: {date: "2020-02-03", time: ["4:04:30"]}
2: {date: "2020-02-04", time: ["5:58:48", "14:11:16"]}
Run Code Online (Sandbox Code Playgroud)
但我得到了这个结果
0: {date: "2020-01-31", time: "8:31:01"}
1: {date: "2020-02-03", time: "4:04:30"}
2: {date: "2020-02-04", time: "5:58:48"}
Run Code Online (Sandbox Code Playgroud)
这是我的代码
var times = response.data.time;
var dates = [];
var t = [];
var d = '';
var newData = [];
times.forEach(time => {
var da = time.substring(0, 10);
var ti = time.substring(12, 19);
if(d == da) { …
Run Code Online (Sandbox Code Playgroud) arrays ×2
javascript ×2
jquery ×2
php ×2
break ×1
curl ×1
curl-multi ×1
duplicates ×1
for-loop ×1
icons ×1
json ×1
object ×1
svg ×1