передача аргумента из bash-файла в php (длинная строка с пробелами)

1

Я хочу передать текст в качестве аргумента из файла bash в php-скрипт следующим образом:

скрипт bash

#!/bin/sh

php /var/www/html/assets/sms/get_sms.php $SMS_1_NUMBER $SMS_1_TEXT

скрипт php

<?php

$url = "http://localhost/user/user/get_sms/".$argv[1];    
$postdata = array('number' => $argv[1],'text'=>$argv[2]);
do_post_request($url,$postdata);

function do_post_request($url, $postdata)
{
  //My function
}
?>

Проблема в том, что первым аргументом для файла bash является число, но вторым аргументом является текст. Файл Php, который принимает аргументы, просто берет первую строку текста. Например, если текст переменной $ SMS_1_TEXT является "Как я могу заставить его работать", php файл получит только "Как".

Как я могу сделать это быстрее?

большое спасибо

  • 0
    Кстати: sh (оболочка Борна) обычно не bash (оболочка Борна).
Теги:

1 ответ

2

Цитирование. Замените $SMS_1_TEXT на "$SMS_1_TEXT".

  • 0
    Не делай этого. Используйте взамен escapeshellarg ().
  • 1
    Ой, ты прав. Если строка содержит двойные кавычки, их нужно будет экранировать.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню