Я сам не маста ПХП, только учусь. Работаю на фирме недвижимости, выгружаем информацию со своего сайта на другие порталы (в основном доски объявлений) и подрабатываю тем что видоизменяю пхп скрипт под конкретный фид.
Наша фарма работает на Украине, и телефоны в 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
это то что надо было, а то я так и не понял
на выходе получаем
+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
Спасибо!!!
только я чуток видоизменил. получилось так:
и телефоны теперь такие:
+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" со значением
Спасибо!!!
только я чуток видоизменил. получилось так:
$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-программист
В общем у меня получился такой конечный вариант:
А на выходе:
P.S. Обещаю когда будет время буду учить как писать правильный код.
В общем у меня получился такой конечный вариант:
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. Обещаю когда будет время буду учить как писать правильный код.