小编Vin*_*ney的帖子

从php中的电话号码修剪国家/地区代码

我会得到一个国家代码$countryCode和一个电话号码$phone_no。电话号码开头会有国家/地区代码,因此我必须从 中删除国家/地区代码$phone_no并获得不附加任何代码的普通电话号码。

例如,如果国家是印度尼西亚,我将得到:

$country_code = '62';
$phone_no = '+62509758151';
// need to  get 509758151
Run Code Online (Sandbox Code Playgroud)

目前我正在尝试使用正则表达式和修剪功能

$result = ltrim( preg_replace("/[^0-9]+/", "",$phone_no) , $country_code);
// $result is 509758151
Run Code Online (Sandbox Code Playgroud)

这在这种情况下有效,但当电话号码以国家代码中提到的数字开头时失败。 $phone_no = '+62609758151';

$result = ltrim( preg_replace("/[^0-9]+/", "",$phone_no) , $country_code);
// $result is 09758151 which is incorrect
Run Code Online (Sandbox Code Playgroud)

更不用说它也会在诸如 +62629758151 之类的琐碎情况下失败

请提出建议。我知道基于字符串的解决方案,例如substr()等,但我正在寻找一些基于正则表达式的解决方案

php regex

6
推荐指数
1
解决办法
7190
查看次数

在页面加载时从OneSignal获取player_id

我正在使用Onesigal API 实现Web推送通知.

    $fields = array(
        'app_id' => "07aae1f0-xxxx-xxxx-aa7a-21c79c5b6733",
        'include_player_ids'=>['57dd3f80-xxxx-xxxx-adb0-294bfa69621a'],
        'contents' => array( "en"=> "message" )
    );

    $fields = json_encode($fields);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8',
                                               'Authorization: Basic YTdmYTYxYzYtN...tNjVlNzJkNDFlZmMz'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem' );
    $response = curl_exec($ch);
    curl_close($ch);
Run Code Online (Sandbox Code Playgroud)

如果你知道他的话,上面的代码会向用户发送推送通知player_id.但是假设某些用户访问我的网站并订阅推送通知并离开.后来他再次访问(他已经订阅)并且喜欢.(添加到收藏夹)当前缺货的产品.那么如何才能获得player_id我可以存储在"subs_fav"表中的这个用户呢?

id  player_id           product_id
1   57dd3f80...a69621a  p097
Run Code Online (Sandbox Code Playgroud)

当该产品变得可用时,pushFav()将运行功能,该功能将通知用户该产品现在可用并且他们可以购买但是为此我们应该知道偏好的用户的player_id.这个产品.我想知道如何找到这个player_id,以便我可以将addToFav()ajax调用发送到"sub_fav"表中的store

javascript push-notification onesignal

4
推荐指数
1
解决办法
5558
查看次数

for循环的奇怪行为

任何人都可以告诉我为什么for即使在失败的迭代中循环增量?

for (var n = 0; n <3; n++) {
     alert(n);                  // displays 0 , 1 , 2 
}
alert(n); // gives 3 
Run Code Online (Sandbox Code Playgroud)

但不应该这样

if(condition):
    //desired stuff
    increment;
else:
    exit;
Run Code Online (Sandbox Code Playgroud)

我很少使用迭代变量,我只是在循环完成后抛弃它们但在这种情况下发现它是导致bug的原因

javascript for-loop

3
推荐指数
1
解决办法
97
查看次数

如何在Carbon实例中添加CarbonInterval实例

我有一个碳实例

   $a = Carbon\Carbon::now();

   Carbon\Carbon {
     "date": "2018-06-11 10:00:00",
     "timezone_type": 3,
     "timezone": "Europe/Vienna",
   }
Run Code Online (Sandbox Code Playgroud)

和CarbonInterval实例

   $b = CarbonInterval::make('1month');


     Carbon\CarbonInterval {
     "y": 0,
     "m": 1,
     "d": 0,
     "h": 0,
     "i": 0,
     "s": 0,
     "f": 0.0,
     "weekday": 0,
     "weekday_behavior": 0,
     "first_last_day_of": 0,
     "invert": 0,
     "days": false,
     "special_type": 0,
     "special_amount": 0,
     "have_weekday_relative": 0,
     "have_special_relative": 0,
   }
Run Code Online (Sandbox Code Playgroud)

如何在碳实例中添加间隔,以便获得

   Carbon\Carbon {
     "date": "2018-07-11 10:00:00",
     "timezone_type": 3,
     "timezone": "Europe/Vienna",
   }
Run Code Online (Sandbox Code Playgroud)

我知道解决方案涉及到将其转换为这样的timestamp或Datetime类

strtotime( date('Y-m-d H:i:s', strtotime("+1 month", $a->timestamp ) ) );  
Run Code Online (Sandbox Code Playgroud)

这是我目前正在使用的方式,但我正在通过官方网站搜索一种更“节能”的方式,但在此上找不到任何内容,因此需要一些帮助。

更新:仅为您提供上下文在前端,我有两个控件,第一个是间隔(天,月,年),第二个是文本框,因此根据组合,我会动态生成字符串,例如“ 2 days …

php laravel php-carbon

3
推荐指数
1
解决办法
973
查看次数

PHP Laravel,识别未使用的翻译

我在想是否有一种方法可以使用常规下划线翻译来识别 Laravel 中未使用的翻译键?

php translation laravel

3
推荐指数
1
解决办法
820
查看次数

HTML5 表单验证 - 错误消息自定义

我有一个像这样输入的表单。

<input type="text" name="question" class="form-control" required="" minlength="4" maxlength="2" size="20" oninvalid="setCustomValidity('please enter something')">
Run Code Online (Sandbox Code Playgroud)

现在默认的验证消息效果很好。但我想为特定规则设置自定义消息。

即对于规则,例如required minlength maxlength当每个失败时我想提供特定于失败规则的自定义错误消息。

我已经尝试过,oninvalid="setCustomValidity('please enter something')"但这为每个规则设置了该消息。

如何为特定规则指定自定义错误消息?

html javascript error-handling input

2
推荐指数
1
解决办法
6725
查看次数

逻辑运算符之前的字符串不会显示在alert()中

如果我执行这个:

alert( "Is 4 equal to 5 ? lets see " + 4 == 5 )
Run Code Online (Sandbox Code Playgroud)

它将逻辑值显示为false,但前一个字符串"Is 4等于5?let see" 缺失,任何人都可以解释为什么会这样?

javascript

0
推荐指数
1
解决办法
32
查看次数