[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Установить "+38" перед телефоном
AraErinii
Доброго времени суток.

Я сам не маста ПХП, только учусь. Работаю на фирме недвижимости, выгружаем информацию со своего сайта на другие порталы (в основном доски объявлений) и подрабатываю тем что видоизменяю пхп скрипт под конкретный фид.

Наша фарма работает на Украине, и телефоны в SQL таблицах на сайте лежат в формате (012) 345-67-89. Это нас устраивало до поры до времени.
Но мы обратились к Российскому порталу для того чтобы размещаться у них, и им в фиде нужно указывать в формате +38 (012) 345-67-89

И у меня возникла такая проблема:

Запрос в sql:
........
SELECT `ContactsPhone` , `ContactsPhone2`
FROM `production`
WHERE 1
LIMIT 0 , 30
........
и выводит

//Телефон агенства (городские 2 телефона)
ContactsPhone
(044) 345-67-89, (044) 345-67-89

//Телефоны маклерские (мобильные телефоны которые меняются, максимально 3 телефона, но в основном по 1 - 2 телефона)
ContactsPhone2
(067) 446-0-446, (050) 300-1-900, (093) 371-6-999

......
в коде выглядит так:



// $row->contacts_phone - Телефон агенства (городские 2 телефона)
// $row->contacts_phone2 - Телефоны маклерские (мобильные телефоны которые меняются, максимально 3 телефона, но в основном по 1 - 2 телефона)


$phonesss = ($row->contacts_phone.','.$row->contacts_phone2);
$phoneszs = '+38';
$phoneszz = $phoneszs.$phonesss;

echo " <AGENCY AGENCY_NAME='Агентство' AGENT_NAME='$row->contacts_name' AGENT_PHONE='$phoneszz' CONTACT_PHONE='+38.$row->contacts_phone' AGENT_EMAIL='en.ua.info@gmail.com' EMAIL='en.ua.info@gmail.com' WEBADRESS='http://www.google.com/' ADDCONTACT=' номер факса: +38(012) 345-67-89'/>\r\n";


..........
а вот как оно выглядит в xlm:

<AGENCY AGENCY_NAME="Агентство " AGENT_NAME="Агентство" AGENT_PHONE="+38(044) 345-67-78, (044) 345-67-78,(012) 345-67-78, (012) 345-67-78, (012) 345-67-78" CONTACT_PHONE="+38.(044) 345-67-78, (044) 345-67-78" AGENT_EMAIL="email@gmail.com" EMAIL="email@gmail.com" WEBADRESS="http://www.google.com/" ADDCONTACT="номер факса: +38(044) 345-67-78" /> 


Как в скрипте сделать так чтобы перед каждым телефоном стояло "+38".

Заранее спасибо за ответы.



Спустя 20 минут, 29 секунд (21.04.2012 - 15:51) h234 написал(а):
'38' . $row->contacts_phone

Спустя 16 минут, 26 секунд (21.04.2012 - 16:07) AraErinii написал(а):
h234

Пробовал и так, на выходе получается так
+38(044) 345-67-89, (044) 345-67-89,


вот как сделать так чтобы еще и на втором телефоне было бы так:

+38(044) 345-67-89, +38(044) 345-67-89,

Спустя 3 минуты, 25 секунд (21.04.2012 - 16:10) johniek_comp написал(а):
имея такую строку (044) 345-67-78, (044) 345-67-78, (012) 345-67-78, (012)345-67-78, (012)345-67-78
на выходе получаем
+38(044) 345-67-78 +38 (044) 345-67-78 +38 (012) 345-67-78 +38 (012)345-67-78 +38 (012)345-67-78

это то что надо было, а то я так и не понял

<?php
$str = "(044) 345-67-78, (044) 345-67-78, (012) 345-67-78, (012)345-67-78, (012)345-67-78";
$array = explode(',', $str);
for($i=0; $i<=4; $i++)
{
$array[$i] = ' +38'.$array[$i];
}
echo implode($array);

?>

Спустя 9 минут, 1 секунда (21.04.2012 - 16:19) alexbel2404 написал(а):
SELECT CONCAT('+38 ', `ContactsPhone`) , CONCAT('+38 ', `ContactsPhone2`) 
FROM `production`
WHERE 1
LIMIT 0 , 30


Пойдет?

Спустя 57 секунд (21.04.2012 - 16:20) h234 написал(а):
$phonesss = '38' . $row->contacts_phone.', 38'.$row->contacts_phone2;

Спустя 13 минут, 20 секунд (21.04.2012 - 16:34) AraErinii написал(а):
johniek_comp

Спасибо!!!

только я чуток видоизменил. получилось так:

$phonesss = ($row->contacts_phone.','.$row->contacts_phone2);
$array = explode(',', $phonesss);
for($i=0; $i<=4; $i++)
{
$array[$i] = ' +38'.$array[$i].',';
}
$phonez = implode($array);


и телефоны теперь такие:
+38(044) 345-67-78, +38 (044) 345-67-78, +38 (012) 345-67-78, +38 (012)345-67-78, +38 (012)345-67-78,


Но вот тут открылась 1 проблема )

что делать если ячейка в столбце "Сontacts_phone" пустое, а "Сontacts_phone2" со значением

Спустя 3 минуты, 37 секунд (21.04.2012 - 16:37) johniek_comp написал(а):
AraErinii
Цитата
что делать если ячейка в столбце "Сontacts_phone" пустое, а "Сontacts_phone2" со значением

ничего, explode будет шурстить до первой ,

Спустя 40 секунд (21.04.2012 - 16:38) h234 написал(а):
Проверяй не пустая ли ячейка
if (!empty(trim($array[$i])))
$array[$i] = ' +38'.$array[$i].',';
else
unset($array[$i]);

Спустя 1 минута, 8 секунд (21.04.2012 - 16:39) alexbel2404 написал(а):
начерта кода столько воротить? если можно только запрос поменять)

Спустя 1 минута, 53 секунды (21.04.2012 - 16:41) AraErinii написал(а):
Цитата (alexbel2404 @ 21.04.2012 - 14:39)
начерта кода столько воротить? если можно только запрос поменять)

индусы мы ))))))))))))

Спустя 27 минут, 34 секунды (21.04.2012 - 17:09) AraErinii написал(а):
Спасибо html-программист

В общем у меня получился такой конечный вариант:
function phone($str){
$array=explode("(", $str);
$str="";
foreach($array as $qwe){
if($qwe){
$str.="+38(".$qwe;
}
}

return $str;
}

$row->contacts_phone=phone($row->contacts_phone);
$row->contacts_phone2=phone($row->contacts_phone2);

$phonesss = $row->contacts_phone.', '.$row->contacts_phone2;
$Phons = $row->contacts_phone;

echo " <AGENCY AGENCY_NAME='Агентство' AGENT_NAME='$row->contacts_name' AGENT_PHONE='$phonesss' CONTACT_PHONE='$Phons' AGENT_EMAIL='en.ua.info@gmail.com' EMAIL='en.ua.info@gmail.com' WEBADRESS='http://www.google.com/' ADDCONTACT=' номер факса: +38(012) 345-67-89'/>\r\n";


А на выходе:

<AGENCY AGENCY_NAME="Агентство" AGENT_NAME="ЭКСПЕРТ" AGENT_PHONE="+38(044) 345-67-89, +38(044)345-67-89, +38(012) 345-67-89, +38(012) 345-67-89, +38(012) 345-67-89" CONTACT_PHONE="+38(044) 345-67-89, +38(044)345-67-89" AGENT_EMAIL="email@gmail.com" EMAIL="mail@gmail.com" WEBADRESS="http://www.google.com/" ADDCONTACT="номер факса: +38(044)345-67-89" />


P.S. Обещаю когда будет время буду учить как писать правильный код.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.