小编Ivá*_*rez的帖子

PHP - json_encode生成器对象(使用yield)

我有一个非常大的PHP(5.6)数组,动态生成,我想转换为JSON.问题是数组太大而不适合内存 - 当我尝试处理它(耗尽的内存)时会出现致命的错误.所以我发现,使用发生器,内存问题将消失.

这是我到目前为止尝试过的代码(这个简化示例显然不会产生内存错误):

<?php 
function arrayGenerator()// new way using generators
{
    for ($i = 0; $i < 100; $i++) {
        yield $i;
    }
}

function getArray()// old way, generating and returning the full array
{
    $array = [];
    for ($i = 0; $i < 100; $i++) {
        $array[] = $i;
    }
    return $array;
}

$object = [
    'id' => 'foo',
    'type' => 'blah',
    'data' => getArray(),
    'gen'  => arrayGenerator(),
];

echo json_encode($object);
Run Code Online (Sandbox Code Playgroud)

但PHP似乎没有对生成器中的值进行JSON编码.这是我从previuos脚本得到的输出:

{
    "id": "foo",
    "type": "blah",
    "data": …
Run Code Online (Sandbox Code Playgroud)

php json yield generator

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

Angular:引用模板中的当前元素

我有一个包含多个输入的表单。我想分别验证每一个,并is-invalid在输入包含无效值时添加一个类(例如,)。我知道 Angular 添加ng-invalid到输入类列表中,但由于 Bootstrap 需要另一个类来显示错误,我想添加 Bootstrap 的类。

有没有办法在 Angular 中引用当前元素?我正在使用 Angular 5。我的模板:

<input [(ngModel)]="test" name="test" required [class.is-invalid]="thisElement.invalid && thisElement.touched">
                                                                   ^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

引用当前元素(thisElement在代码段中)的东西是我正在寻找的。它存在吗?

angular

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

GStreamer - 向元素发出信号

我有一个写入 C 程序的管道,该程序将视频流从 stdin 重定向到多个 UDP 客户端。我希望动态添加或删除这些客户端,因此无法在编译时定义它们中的哪些以及将有多少。这是我的管道(如果我添加一个固定clients参数它工作正常):

fdsrc name=origin \
! video/x-h264,width=320,height=240,framerate=30/1,profile=baseline,stream-format=avc,alignment=au \
! h264parse \
! rtph264pay \
    config-interval=1 \
    pt=96 \
! multiudpsink name=dest \
     sync=false
Run Code Online (Sandbox Code Playgroud)

根据 GStreamer 文档,我可以通过发送信号来动态添加或删除客户端来实现它。在这种情况下,它应该是add信号

但是我找不到有关向元素(在本例中,是multiudpsink元素)发送信号的任何信息。很容易获得对我的元素的引用:

GstElement *sink = gst_bin_get_by_name(GST_BIN(pipeline), "dest");
/* TODO: send a signal to add a client */
g_object_unref(sink);
Run Code Online (Sandbox Code Playgroud)

但是现在我怎样才能向那个元素发出信号呢?

c signals udp video-streaming gstreamer

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

从PHP执行Puppeteer时出错

我有一个节点脚本,可以将网页转换为PDF文档.用户输入一些内容,PHP构建一个HTML页面,然后在节点脚本(运行Puppeteer,使用稍微修改的示例脚本版本)中将其转换为PDF.

但是,当我exec的 PHP中的命令来运行节点脚本时,出现以下错误:

(node:14832) UnhandledPromiseRejectionWarning: Error: Failed to launch chrome!
[0424/165455.239499:ERROR:icu_util.cc(133)] Invalid file descriptor to ICU data received.
[0424/165455.239717:FATAL:content_main_delegate.cc(53)] Check failed: false.
#0 0x55f27f255b0c base::debug::StackTrace::StackTrace()
#1 0x55f27f26e780 logging::LogMessage::~LogMessage()
#2 0x55f27d5f7d23 content::ContentMainDelegate::TerminateForFatalInitializationError()
#3 0x55f27ef90deb content::ContentMainRunnerImpl::Initialize()
#4 0x55f27ef9ab72 service_manager::Main()
#5 0x55f27ef8ff14 content::ContentMain()
#6 0x55f28309f9b9 headless::(anonymous namespace)::RunContentMain()
#7 0x55f28309fa42 headless::HeadlessBrowserMain()
#8 0x55f27ef97f9d headless::HeadlessShellMain()
#9 0x55f27d5f61ac ChromeMain
#10 0x7efcaad45c05 __libc_start_main
#11 0x55f27d5f602a _start
Run Code Online (Sandbox Code Playgroud)

PHP正在与apache用户一起运行.但是,如果我与我的用户运行相同的脚本,它可以完美地工作.当我在使用su - apache -c 'node ...'它的终端中执行时再次抛出上述错误.

是什么导致错误?与apache用户权限相关的东西?我跟着所有麻烦的导游,但此刻我没有运气.

php apache centos7 puppeteer

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

标签 统计

php ×2

angular ×1

apache ×1

c ×1

centos7 ×1

generator ×1

gstreamer ×1

json ×1

puppeteer ×1

signals ×1

udp ×1

video-streaming ×1

yield ×1