PHP:在带有反斜杠的双引号中使用变量

  • 本文关键字:变量 PHP php curl path
  • 更新时间 :
  • 英文 :


我有一个带有Windows路径和backslahes的变量。在这方面,我需要两个安托赫变量。看起来像这样:

$file_name_with_full_path = 'C:inetpubwwwrootuploadfiles$filnr$file';

最后我需要变量 $filnr 和 $file,但不可能用">

"
$file_name_with_full_path = "C:inetpubwwwrootuploadfiles$filnr$file";

使用" "我得到了一个错误,因为在我的脚本中我做了一个卷曲请求。

如何在单个 ' 中插入带有反斜杠的变量?

我的完整脚本如下所示:

if ($result->num_rows > 0) {
//schleife ausführen
while($row = $result->fetch_assoc()) {
//ip und filnr aus datenbank in var
$ip = $row["ip"];
$filnr = $row["filnr"];
echo "$filnr $ip<br>";
//filnr und dateiname momentan noch hart codiert
$target_url = "http://10.74.20.94:6001/upload";
$file_name_with_full_path = 'C:inetpubwwwrootuploadfiles$filnr$file';
if (function_exists('curl_file_create')) {
$cFile = curl_file_create($file_name_with_full_path);
} else {
$cFile = '@' . realpath($file_name_with_full_path);
}
$post = array('targetpath'=>'C:bizstorecardhossi','uploadfile'=> $cFile);
$go = curl($target_url,$post);
}
} else {
echo "Fehler bei Abfrage";
}
function curl($target_url,$post) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);
curl_close($ch);
}

只需使用字符串连接:

$file_name_with_full_path = 'C:inetpubwwwrootuploadfiles\' . $filnr . '\' . $file;

请注意,您需要在'之前对使用\,否则 PHP 会将其视为转义'

如果你想使用双引号,你只需要转义在可以解释为变量(或特殊字符,例如f= 表单馈送(:

$file_name_with_full_path = "C:inetpubwwwrootupload\files\$filnr\$file";

3v4l.org 演示

您不能直接在单个带引号的字符串中使用变量,如果要使用它,则需要手动连接或使用sprintf.

双引号不起作用的原因是因为反斜杠转义了$字符,因此它只是按字面意思打印字符串。您需要转义反斜杠字符才能正确打印它们。

$file_name_with_full_path = "C:\inetpub\wwwroot\upload\files\$filnr\$file";

或者,为了增加可读性,您可以在双引号字符串中使用大括号。

$path = "C:inetpubwwwrootuploadfiles{$filnr}{$file}";

此外,这适用于使用单引号寻址的数组值:

$path = "C:inetpubwwwrootuploadfiles{$file['directory']}{$file['name']}";

相关内容

  • 没有找到相关文章

最新更新