Вопросы по PHP |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 7195-й день
![]() |
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
Вопросы по PHP |
| PRIHOD |
Пост
#1
|
|
Репутация: 205 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 233 С нами с: 8-August 07 |
Приветствую!
Joomla Хочу, что бы в корзине, выводило сообщение о том, что доставка бесплатная, при условии, если цена выше 200грн имеем $pricesum - сумма к оплате пишу <?php if ($pricesum >= 200){ ?> <?php $freedelivery = 'Для этого товара доставка бесплатная'; ?> <?php }else{?> <?php $freedelivery = 'фиксированная стоимость'; ?> <?php } ?> и вывожу ее echo"<tr> <td colspan=\"2\" align=\"right\">".$freedelivery."</td>; но так не воркает. Подскажете? |
![]() ![]() |
| mzk |
Пост
#361
|
|
Репутация: 83 ![]() Cтаршой ![]() ![]() Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Странно, да... но изменять ничего не могу, к сожалению.
Схема тоже не сработает - применится только последний массив $communications[] Вот сейчас у меня для одного выглядит так: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « |
| phpkiev |
Пост
#362
|
|
Репутация: 310 ![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 5 193 С нами с: 24-November 07 |
... Схема тоже не сработает - применится только последний массив $communications[] ... Не очень понял, что же вам надо и где ваш код, если ХМЛ менять нельзя, сервис менять нельзя Есть вот такой xml, который отлично отрабатывает в SoapUI. оно и не удивительно, ведь эта тулза принимает на вход ХМЛ, а он валидный и его можно парсить потегово - никаких проблем. А в вышем случае вопрос к методу creater(). Сможет ли он корректно обработать такой массив: $item = [ 'communicationScopes' => [ 'code' => 1 ], 'value' => 0671234567, 'type' => 1, 'phoneType' => 2, 'order' => 0, 'main' => true ]; $communications[] = ['communications'=>$item]; $item = [ 'value' => '[email protected]', 'type' => 3, 'order' => 0, 'main' => true ]; $communications[] = ['communications'=>$item]; $params['communications'] = $communications; А возможно там есть параметр или метод, который будет принимать сразу ХМЛ на входе и сам всё разбирать? |
| mzk |
Пост
#363
|
|
Репутация: 83 ![]() Cтаршой ![]() ![]() Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Попробовал этот вариант... По-видимому, сами веб-сервисы не понимают такой формат:
[communications] => Array ( [0] => Array ( [communications] => Array ( [communicationScopes] => Array ( [code] => 1 ) [value] => 0671234567 [type] => 1 [phoneType] => 2 [order] => 0 [main] => true [any] => ) ) [1] => Array ( [communications] => Array ( [value] => [email protected] [type] => 3 [order] => 0 [main] => true [any] => ) ) ) А что-то там менять или допилить возможности нет |
| phpkiev |
Пост
#364
|
|
Репутация: 310 ![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 5 193 С нами с: 24-November 07 |
|
| mzk |
Пост
#365
|
|
Репутация: 83 ![]() Cтаршой ![]() ![]() Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Ребята, то ли я че-то попутал, то ли лыжи не едут..
Есть вот такой массив: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Пытаюсь вытащить данные из его с помощью foreach(): CODE Format $n=0; foreach ($order_array as $key=>$value) { echo $key." - ". $value[$n]."<br>"; $n++; } На выходе получаю только последние значения из каждого внутреннего массива... CODE Format ----------------------------------------- str_line - 1 str_virt_store - 3 str_store - 3 str_order - 663043 str_lmcode - 10917865 str_qty - 6 ----------------------------------------- А хочется все получить. Где туплю? Спасибо! |
| YaAllex |
Пост
#366
|
|
Репутация: 82 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 184 С нами с: 15-November 11 |
У вас при каждой итерации выбирается : 1 элемент из массива 1, из 2-го массива 2-й элемент, из 3-го массива 3-й элемент. Вы ошибочно используете n++. По сути значения массивов у вас при каждой итерации хранятся в $value (тут вы правы), но чтобы их распарсить перебирайте массив $value полностью, а не указывая конкретный элемент. Можно второй foreach кинуть на $value, либо другим способом - while,for etc...
CODE Format foreach ($order_array as $key=>$value) { echo $key." - "; foreach ($value as $some_value) { echo $some_value; } } Сообщение отредактировал YaAllex - Jun 15 2019, 22:23 |
| mzk |
Пост
#367
|
|
Репутация: 83 ![]() Cтаршой ![]() ![]() Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Спасибо за подсказку, с for все получилось
|
| YaAllex |
Пост
#368
|
|
Репутация: 82 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 184 С нами с: 15-November 11 |
|
| mzk |
Пост
#369
|
|
Репутация: 83 ![]() Cтаршой ![]() ![]() Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
интересно было бы глянуть код. Как-то так... CODE Format $size = sizeof($order_array['str_line']); for ($i = 0; $i < $size; $i++) { //echo $order_array['str_line'][$i]." line $i <br>"; echo $order_array['str_ldap'][$i]. " - ". $order_array['str_line'][$i]. " - ". $order_array['str_virt_store'][$i]. " - ". $order_array['str_mgmt_store'][$i]. " - ". $order_array['str_store'][$i]. " - ". $order_array['str_order'][$i]. " - ". $order_array['str_lmcode'][$i]. " - ". $order_array['str_qty'][$i]. "<br>"; } Считаю str_line потому, что он является таким себе ключом в массиве (количество линий из таблицы) |
| YaAllex |
Пост
#370
|
|
Репутация: 82 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 184 С нами с: 15-November 11 |
Немного громозко, но раз устраивает, то ладно )
ПС. Меня код интересовал только с точки зрения - "а что же хотели получить", тк формулировка вопроса была расплывчатой. xD Как всегда в таких ситуациях - вопрошающий думал одно, отвечающий другое). |
| mzk |
Пост
#371
|
|
Репутация: 83 ![]() Cтаршой ![]() ![]() Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Друзья, я опять к вам...
Встретился с ситуацией, когда curl возвращает данные, не совсем понятным образом Например, делаю колл с параметрами на wsdl: CODE Format $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://xxxxxx.vices.wsdl", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => "$xml", CURLOPT_HTTPHEADER => array( "Accept: text/xml", "Content-Type: text/xml; charset=utf-8", "cache-control: no-cache" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); Получаю ответ в $response: CODE Format print_r($response); Выводит эти данные: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « CODE Format file_put_contents('test.txt',$response,FILE_APPEND); Пишет нормальный хмл в файл: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Пробовал так: CODE Format $xml_simple = simplexml_load_string($response); $json = json_encode($xml_simple); $arr = json_decode($json,true); Внутри $arr - пусто.. Никак не могу понять, как правильно"поймать" и конвертировать $response в обычный массив данных Сообщение отредактировал mzk - Jul 3 2019, 14:37 |
| YaAllex |
Пост
#372
|
|
Репутация: 82 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 184 С нами с: 15-November 11 |
Хм... странная любовь у вас к массивам.
CODE Format CURLOPT_POSTFIELDS => "$xml" вы уверены в этой опции? на сколько я помню, там должен стоять urlencoded данные, либо массив данных, которые вы передаете с $_POST запросом $responce - это строка, с тем, что вам curl отдал, в результате запроса. Из того, что я вижу - CODE Format $xml_simple = simplexml_load_string($response); скорее всего возвращает пустой объект simplexml (дальнейшие действия бессмысленны) Попробуйте распарсить строчку с $responce при помощи ф-ций для работы с строками ( раз в файл ложится с переводом строк, то скорее всего там они проставлены): CODE Format $my_super_array = explode(PHP_EOL, $responce); либо через символы перевода строки CODE Format $my_super_array = explode('\n', $responce); |
| mzk |
Пост
#373
|
|
Репутация: 83 ![]() Cтаршой ![]() ![]() Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Это не у меня странная любовь, это приходится работать с тем, что есть
Решил вопрос следующим образом: CODE Format $catch = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $response); $xml_create = new SimpleXMLElement($catch); $body = $xml_create->xpath('//soapBody')[0]; $xml_response_to_array = json_decode(json_encode((array)$body), TRUE); print_r($xml_response_to_array); |
| СОУП |
Пост
#374
|
|
Репутация: 32 ![]() Активист ![]() Группа: Пользователи Сообщений: 316 С нами с: 7-July 11 |
Есть сайт, который перенесли с домена А на домен Б
Сайт сейчас работает на домене А, домен Б закрыт для индексирования. После переноса первое время с сайтом на домене А было все ок, но потом слетели какие-то настройки. Какую часть кода надо сравнивать сайта на домене Б с доменом А, чтобы его востановить или надо копаться в БД? http://prntscr.com/ouyoap- сайт на домене Б отображает все корректно http://prntscr.com/ouyqme- сайт на домене А с ошибками. |
| YaAllex |
Пост
#375
|
|
Репутация: 82 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 184 С нами с: 15-November 11 |
Wordpress? Если да, то проверьте языковые настройки сайта - в настройках должно быть и список "язык сайта"
|
| СОУП |
Пост
#376
|
|
Репутация: 32 ![]() Активист ![]() Группа: Пользователи Сообщений: 316 С нами с: 7-July 11 |
Wordpress? Если да, то проверьте языковые настройки сайта - в настройках должно быть и список "язык сайта" Да, Wordpress правильно ли я понимаю, что надо вот эти настройки смотреть? http://prntscr.com/ouzr8c |
| YaAllex |
Пост
#377
|
|
Репутация: 82 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 184 С нами с: 15-November 11 |
в админке сайта your-site.com/wp-admin ![]() |
| СОУП |
Пост
#378
|
|
Репутация: 32 ![]() Активист ![]() Группа: Пользователи Сообщений: 316 С нами с: 7-July 11 |
оба параметра одинаковы
стоит русский http://prntscr.com/ov1529 разница только в дополнительном укр языке http://prntscr.com/ov1660 когда подключаю язык uk - сайт вообще не отображается)))) Сообщение отредактировал СОУП - Aug 20 2019, 12:07 |
| СОУП |
Пост
#379
|
|
Репутация: 32 ![]() Активист ![]() Группа: Пользователи Сообщений: 316 С нами с: 7-July 11 |
Пока, что удалось выяснить, что public_html в обоих сайтах проблем не имеют.
В openserver сконектил public_html старого сайта, с БД нового- все корректно отображается Т.к. на новом сайте проблем нету, то значит исключаем public_html нового из зоны риска Остается в подозрении БД старого сайта. Есть варианты где надо копать? Сообщение отредактировал СОУП - Aug 20 2019, 16:18 |
| СОУП |
Пост
#380
|
|
Репутация: 32 ![]() Активист ![]() Группа: Пользователи Сообщений: 316 С нами с: 7-July 11 |
БД выглядит вот так http://prntscr.com/ov5sy7
проблемма в самом виджете http://prntscr.com/ov6j37 Сообщение отредактировал СОУП - Aug 20 2019, 17:21 |
![]() ![]() |
|
Упрощённая версия | Сейчас: 25th November 2025 - 16:17 |
| Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |