小编use*_*273的帖子

php - 由未知的正则表达式拆分

我需要用我知道的分隔符来分割字符串,也不知道.例如,我知道我想用"\n"和","和"."分割字符串.还有1个可以由用户定义的sperator:例如它可以是";" 或"你好"或几乎任何东西.

我试过这个:

"[\n|,|.|".$exp."]"
Run Code Online (Sandbox Code Playgroud)

......但是没有按预期工作.据我所知| 意思是.所以这个reg exp应该说用"\n"或","或"."分隔.或"你好".我认为它是因为如果我尝试[hello]那么它会按每个字母而不是整个字分开.这很奇怪,因为如果我只尝试[\n]那么它只会被"\n"拆分 - 而不是"\"或"n".

有人可以向我解释一下吗?:)

php regex

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

仅使用 Apache HttpClient 跳过主机名验证

我需要在不更改信任管理器的情况下跳过 httpclient 4.2.1 的主机名验证。我是这样存档的:

    httpClient = new DefaultHttpClient(a, b);
    SSLSocketFactory socketFactory = (SSLSocketFactory) httpClient.getConnectionManager().getSchemeRegistry().get("https").getSchemeSocketFactory();
    socketFactory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Run Code Online (Sandbox Code Playgroud)

...但我使用的 setHostnameVerifier 方法已被弃用。如何使用未弃用的方法实现相同的目标?

java ssl apache-httpclient-4.x

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

为什么在允许"返回x"时必须使用"this.x = x"?

我对教程有一点误解.这是一个切口:

public class Test {
  private int id;

  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
}
Run Code Online (Sandbox Code Playgroud)

无论如何,我无法理解的是如何引用id.例如,我可以看到在getId方法中,我可以通过只返回id来直接访问先前定义的id.但是在setId方法中,先前定义的id被称为this.id,方法参数是id.

现在,如果在get方法中有"return this.id",那么我会理解一切.但此刻我很困惑.我假设如果我将在set方法中返回id,我将返回参数,而不是类定义的id.总而言之,只要键入"id"就可以加入类定义的id,除非有一个带有相同名称的参数传递?这听起来很奇怪,我错过了什么?

java syntax

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

在这种情况下使用枚举是否正确?

这是关于最佳实践/风格的问题.

我有一个Printer类,可以打印出不同颜色的元素.使用Enum作为输入是否正确:

public class Printer {

public enum Color{RED, GREEN, BLUE}

public void print (Color color){
    MyElement myElement = new MyElement();
    switch (color) {
        case RED:
            myElement.setColor("#xxxxxx");
            break;
        case GREEN:
            myElement.setColor("#xxxxxx");
            break;
        case BLUE:
            myElement.setColor("#xxxxxx");
            break;
    }
    myElement.print();
}

}
Run Code Online (Sandbox Code Playgroud)

然后从另一个类中调用该方法,如下所示:

Printer p = new Printer();
p.print(Printer.Color.RED);
Run Code Online (Sandbox Code Playgroud)

...或者将值添加到枚举中会更好:

public class Printer {

    public enum Color {
        RED("#xxxxxx"), 
        GREEN("#xxxxxx"), 
        BLUE("#xxxxxx");

        private final String hex;

        Color(String hex){
            this.hex = hex;
        }

        public String getHex(){
            return this.hex;
        }
    }

    public void print (Color …
Run Code Online (Sandbox Code Playgroud)

java enums

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

innerHTML内的Angular4 routerLink转为小写

我有一个cmd,我从服务器获取页面的内容.然后内容可以包括HTML和链接.问题是,当我显示此数据时,链接不起作用.当看到页面源时,事实证明"routerLink"被转换为"路由器链接",这就是为什么它可能不起作用.这是我的代码:

我的班级,注意到routerLink在这里是camelcase:

export class TwoComponent implements OnInit {
  data = '<a routerLink="/one">ONE</a>'; //this will actually come from backend server

  constructor() { }

  ngOnInit() {}
}
Run Code Online (Sandbox Code Playgroud)

而我的HTML:

<div [innerHTML]="data | bypassSecurity"></div>
Run Code Online (Sandbox Code Playgroud)

当我加载这个页面并查看源代码时,routerLink现在是小写的:

<a routerlink="/one">ONE</a>
Run Code Online (Sandbox Code Playgroud)

起初,我认为它是旁路安全管道负责,但我检查了管道的输出,routerLink仍然在那里的驼峰.所以它似乎发生在其他地方.以防这里是我的bypassSecurity管道:

export class BypassSecurityPipe implements PipeTransform {
  constructor(private sanitized: DomSanitizer) {}

  transform(value): any {
    return this.sanitized.bypassSecurityTrustHtml(value);
  }
}
Run Code Online (Sandbox Code Playgroud)

关于这种小写转换发生的位置和原因的任何建议将不胜感激:)

typescript angular

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

Laravel - 无需登录即可验证用户身份

在 laravel 5.4 中,是否可以在不登录的情况下对用户进行身份验证?从 laravel 文档中我能找到的最接近的东西是:

Auth::once($credentials)
Run Code Online (Sandbox Code Playgroud)

但这仍然使用户在该请求期间登录。我所需要的只是知道具有该电子邮件和密码的用户是否存在。

php laravel laravel-5 laravel-5.4

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

Gitlab CI-错误:作业失败:执行程序需要OSType = linux,但Docker Engine仅支持OSType = windows

运行Gitlab CI管道时出现此错误。据我了解,错误表明我正在尝试在Windows docker-engine上运行Linux类型的docker映像?但问题是我正在使用Windows docker映像。可能是什么问题呢?

错误:作业失败:执行程序需要OSType = linux,但是Docker Engine仅支持OSType = windows

我的CI:

image: hello-world:nanoserver

stages:
  - build

build1:
  stage: build
  script:
    - echo "Hello world"
Run Code Online (Sandbox Code Playgroud)

gitlab docker gitlab-ci gitlab-ci-runner

3
推荐指数
2
解决办法
114
查看次数

角2/4-从组件的所有html文件中的服务中获取变量的最佳实践?

我在angular 4项目中有警报服务。所有组件都可以在该服务中设置警报,但是只有一些组件可以显示警报,而每个组件都可以在唯一的位置显示警报。所以我的问题是,如何在所有html文件中定义从服务获取变量?

我的服务如下所示:

import { Injectable } from '@angular/core';

@Injectable()
export class AlertService {
  message;

  constructor() { }

  setMessage(message){
    this.message = message;
  }
}
Run Code Online (Sandbox Code Playgroud)

要设置消息的组件只需导入服务并调用setMessage方法。但是当我尝试在html文件中使用消息时,例如:

{{message}}
Run Code Online (Sandbox Code Playgroud)

然后超出范围。如何使该消息在所有组件的所有html文件中均可访问?

也许有比服务变量更好的方法来解决这种需求?

javascript angular-cli angular

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

Laravel 在注销时清除整个会话

我在会话中保留了用户登录和注销时使用的不同内容。问题是当用户注销时,laravel 会清除我在会话中存储的所有内容:

发生这种情况是因为 laravel 核心类 AuthenticatesUsers 看起来像这样:

/**
 * Log the user out of the application.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function logout(Request $request)
{
    $this->guard()->logout();

    $request->session()->invalidate();

    return redirect('/');
}
Run Code Online (Sandbox Code Playgroud)

因为我不想更改核心类,如何避免在用户注销时丢失会话数据?

php laravel laravel-5.4

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

覆盖外部对象的方法

我有一种情况,我想拦截/覆盖外部(我没有访问它们)对象的方法.我的情况的一个例子:

我有一个外部对象:

public class ExternalObject {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}
Run Code Online (Sandbox Code Playgroud)

一个外部阶级女巫使用它:

public class ExternalClass {
    public static void main(String[] args) {
        ExternalObject o = new ExternalObject();
        o.setName("Tom");

        MyClass.doSomething(o);

        o.setName("Jerry");

        System.out.print(o.getName());
    }
}
Run Code Online (Sandbox Code Playgroud)

然后有MyClass女巫有一个机会来访问外部对象:

public class MyClass {
    public static void doSomething(ExternalObject o){

    }
}
Run Code Online (Sandbox Code Playgroud)

是否可以覆盖或修改MyClass中的setName方法?我需要的是setName方法检查名称是否是"jerry"然后将其更改回"tom",如果没有,则执行原始方法的操作.

像这样的东西:

public void mySetName(String name){
  if(name.equals("Jerry"){
    name = "Tom";
  }
  doWhatOriginalMethodDoes();
}
Run Code Online (Sandbox Code Playgroud)

因此,如果有人像现在一样运行外部类,那么Tom将被打印两次.

顺便说一句,外部(原始)对象和方法非常复杂.我已经四处搜索,这应该可以与reflect.Proxy做,但我不能让它工作.

谢谢你的帮助!:)

java

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