小编Dar*_*tic的帖子

如何在PHP中打开名称中包含unicode字符的文件?

例如,我有一个这样的文件名 - проба.xml,我无法从PHP脚本打开它.

如果我将php脚本设置为utf-8,那么脚本中的所有文本都是utf-8,因此当我将其传递给file_get_contents时:

$fname = "?????.xml";
file_get_contents($fname);
Run Code Online (Sandbox Code Playgroud)

我得到文件不存在的错误.原因是在Windows(XP)中,所有带有非拉丁字符的文件名都是unicode(UTF-16).好的,所以我试过这个:

$fname = "?????.xml";
$res = mb_convert_encoding($fname,'UTF-8','UTF-16');
file_get_contents($res);
Run Code Online (Sandbox Code Playgroud)

但是错误仍然存​​在,因为file_get_contents无法接受unicode字符串...

有什么建议?

php string unicode

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

YAML 锚定在 bitbucket 管道中

我正在尝试编写 bitbucket 管道并使用YAML 锚点来减少重复。

这就是我想做的例子:

---

definitions:
  steps:
    - step: &build-test-alpine
        image: php:7.4-alpine
        caches:
          - composer
        script:
          - apk add unzip curl
          - curl -sS https://getcomposer.org/installer | php -- --install-dir='/usr/local/bin' --filename='composer'
          - composer --no-ansi -n install
          - composer --no-ansi -n test

pipelines:
  custom:
    deploy:
      - step:
          name: Build and deploy application
          <<: *build-test-alpine
          script:
            - Some other command to execute

  default:
    - step:
        <<: *build-test-alpine
        name: PHP 7.4
    - step:
        <<: *build-test-alpine
        image: php:7.3-alpine
        name: PHP 7.3

... …
Run Code Online (Sandbox Code Playgroud)

yaml bitbucket-pipelines

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

尝试在 Azure 云提供商上创建专用链接时出现问题

我正在尝试开发 terraform 脚本,该脚本在 Azure 上创建虚拟机并使用专用链接将其连接到 Azure Postgresql 实例。我总是收到此错误:

Error: creating Private Endpoint "n4gx6y-endpoint" (Resource Group "PGSQLResourceGroup"): 
network.PrivateEndpointsClient#CreateOrUpdate: 
Failure sending request: StatusCode=400 -- Original Error: 
Code="IncorrectPrivateLinkServiceConnectionGroupId" 
Message="Call to Microsoft.DBforPostgreSQL/servers failed. 
Error message: Private Link Service Connection Group Id is 
incorrect for Azure Database for PostgreSQL" Details=[]

  on main.tf line 68, in resource "azurerm_private_endpoint" "example":
  68: resource "azurerm_private_endpoint" "example" {
Run Code Online (Sandbox Code Playgroud)

这是脚本:

# -*- mode: hcl; coding: utf-8; -*-
# vim: set syntax=hcl fileencoding=utf-8

terraform {
  required_version = ">= 0.12, < 0.13"
} …
Run Code Online (Sandbox Code Playgroud)

postgresql azure mariadb terraform-provider-azure terraform0.12+

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

使用 PCRE 正则表达式解析多行 ini 之类的文件

我有一个类似 ini 的文件,其中有<key> = <value>项目列表。使事情复杂化的是某些值是多行的并且可以包含=字符(tls 私钥)。例子:

groupid = foo
location = westus
randomkey = fbae3700c34cb06c
resourcename = example4-resourcegroup
tls_private_key = -----BEGIN RSA PRIVATE KEY-----
//stuff
-----END RSA PRIVATE KEY-----

foo = 123
faa = 223
Run Code Online (Sandbox Code Playgroud)

到目前为止,我所拥有的模式是这样的/^(.*?)\ \=\ (.*[^=]*)$/m,它适用于除 tls_private_key 之外的所有键,因为它包含=所以它只获取部分值。

有什么建议?

php regex pcre

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