PHP“Use”在模板中不起作用

时间:2018-05-07 作者:730wavy

我正在尝试从中实现代码this site 在代码中,以下行导致错误,并且未加载我的页面--

use \\Aws\\Polly\\PollyClient;
如果我注释掉代码,那么页面加载很好,除了我尝试使用的脚本无法工作之外,我没有收到任何错误。

代码似乎相当标准的php,所以我想知道这是否是因为它是wordpress,我需要做一些其他的事情来使用-“使用”?

完整代码---

//include_once (\'/polly/aws-autoloader.php\');

require_once (\'/polly/aws-autoloader.php\');
use \\Aws\\Polly\\PollyClient;

if(isset($_REQUEST[\'voice\']) && $_REQUEST[\'voice\'] != \'\') {

$voice_id = $_REQUEST[\'voice\'];

} else {

$voice_id="Joanna";

}

if(isset($_REQUEST[\'text\']) && $_REQUEST[\'text\'] != \'\') {

$text = trim(strip_tags($_REQUEST[\'text\']));

}

if(isset($_REQUEST[\'rate\']) && $_REQUEST[\'rate\']!=\'\') {

$rate=$_REQUEST[\'rate\'];

} else {

$rate="medium";

}



$is_download = false;


if(isset($_REQUEST[\'download\']) && $_REQUEST[\'download\']==1) {

$is_download=true;

}


$config = [

\'version\'     => \'latest\',
\'region\'      => \'us-east-1\',
\'credentials\' => [
\'key\'    => \'MY KEYS\',

\'secret\' => \'MY KEYS\',
]

];

$client = new PollyClient($config);
$args = [

\'OutputFormat\' => \'mp3\',
\'Text\' => "<speak><prosody rate=\'$rate\'>".str_replace("&","&amp;",urldecode ($text))."</prosody></speak>",
\'TextType\' => \'ssml\',
\'VoiceId\' => $voice_id,
];

$result = $client->synthesizeSpeech($args);
$resultData = $result->get(\'AudioStream\')->getContents();

$size = strlen($resultData); // File size

$length = $size; // Content length

$start = 0; // Start byte

$end = $size - 1; // End byte

if(!$is_download) {

header(\'Content-Transfer-Encoding:chunked\');

header("Content-Type: audio/mpeg");

header("Accept-Ranges: 0-$length");

header("Content-Range: bytes $start-$end/$size");

header("Content-Length: $length");

echo $resultData;


} else {


header(\'Content-length: \' . strlen($resultData));

header(\'Content-Disposition: attachment; filename="polly-text-to-speech.mp3"\');

header(\'X-Pad: avoid browser bug\');

header(\'Cache-Control: no-cache\');

echo $resultData;

}

1 个回复
最合适的回答,由SO网友:kero 整理而成

引用this answer, 当我搜索你的错误信息时出现了:(强调我的)

您不能使用;使用“;您使用它的位置。

“The”;使用“;关键字位于类定义前面,用于将其他类/接口/特性导入到自己的命名空间中,或者位于类内部(but not inside a method) 向类中添加特征。

这个use 必须在函数之外,我想你是在调用它。像这样的东西应该有用

<?php

use \\Aws\\Polly\\PollyClient;

// some code

function myfunc() {
    require_once (\'/polly/aws-autoloader.php\');
    // rest of the code
}
您在use 关键字。毕竟,它只会膨胀PollyClient\\Aws\\Polly\\PollyClient 当您在代码中使用它时。

结束