❶ 在php中如何通過介面實現外匯實時更新
PHP 做網站是PULL機制,左實時並不是最佳解決方案。如果是客戶端從服務端獲取,那就定時拉去信息,如果是服務端從第三方平台獲取數據,那就做個計劃任務,定時提取數據寫入資料庫。畢竟我們做推送不是我們的強項。
❷ PHP怎麼做銀聯的支付介面調用
對方應該有sdk和demo提供的,支付介面的流程都差不多,包括支付寶,網銀,財付通,paypal等流程都一樣。
1、
用戶下單,收集購物車內產品的總價
2、
拼裝支付參數URL跳轉進入支付網關進行支付(這里會用到支付網關提供的SDK)
3、
支付成功
(1) 支付網關伺服器會非同步發送支付成功的通知到你的「通知URL」,你對過來的參數進行有效性驗證,確保是從支付網關發來的,進行業務邏輯處理,比如設置訂單完成標識等作;
(2) 注意這不是「返回URL」,這一步操作前台支付用戶不會看到。
4、
網關一般在完成支付後,會自動返回我們的網站,進入網站後提示用戶完成支付,並跳轉到相應頁面即可。
❸ php里實現匯率轉換
簡單的一個方法:
在載入網頁時預讀所有貨幣的匯率,並存為JS數組
當下拉列表更改選擇時,用JS控制顯示匯率,並計算貨幣價格
這個思路,你參考一下,應該是非常簡單的
❹ 怎麼用PHP開發API供其他客戶端調用
PHP開發API供其他客戶端調用的例子:
1、服務端注冊介面
<?php
require 'conn.php';
header('Content-Type:text/html;charset=utf-8');
$action = $_GET['action'];
switch ($action) {
//注冊會員
case"adserinfo";
$username = lib_replace_end_tag(trim($_GET['username']));
$password2 = lib_replace_end_tag(trim($_GET['userpassword']));
$password = md5("$password2" . ALL_PS);
$email = lib_replace_end_tag(trim($_GET['email']));
if ($username == '' || $password2 == '' || $password == '') {
$res = urlencode("參數有誤");
exit(json_encode($res)); //有空信息
}
$sql = "select username from `member` where username='$username'";
$query = mysql_query($sql, $conn);
$count = mysql_num_rows($query);
if ($count > 0) {
exit(json_encode(1)); //返回1表示注冊失敗
} else {
$addsql = "insert into `member` (username,password,email) values ('$username','$password','$email')";
mysql_query($addsql);
exit(json_encode(0)); //返回0表示注冊成功
}
break;
//查詢用戶信息
case"selectuserinfo";
$username = lib_replace_end_tag($_GET['username']);
$sql = "select id,username,nickname,mobile from `member` where username='$username'";
$query = mysql_query($sql, $conn);
$row = mysql_fetch_array($query);
foreach ($row as $key => $v) {
$res[$key] = urlencode($v);
}
exit(json_encode($res));
break;
//會員登錄
case"userlogin";
$username = lib_replace_end_tag($_GET['username']);
$password2 = lib_replace_end_tag(trim($_GET['userpassword']));
$password = md5("$password2" . ALL_PS);
$sqluser = "select id,username,password from `member` where username='" . $username . "' and password='" . $password . "'";
$queryuser = mysql_query($sqluser);
$rowuser = mysql_fetch_array($queryuser);
if ($rowuser && is_array($rowuser) && !empty($rowuser)) {
if ($rowuser['username'] == $username && $rowuser['password'] == $password) {
if ($rowuser['password'] == $password) {
$res = urlencode("登錄成功");
exit(json_encode($res));
} else {
$res = urlencode("密碼錯誤");
exit(json_encode($res));
}
} else {
$res = urlencode("用戶名不存在");
exit(json_encode($res));
}
} else {
$res = urlencode("用戶名密碼錯誤");
exit(json_encode($res));
}
/*
* 0:表示登錄成功,1:表示密碼錯誤,2:用戶名不存在,3:用戶名密碼錯誤
*/
break;
default:
exit(json_encode(error));
}
?>
2、 客戶端調用例子:
<?php
header('Content-Type:text/html;charset=utf-8'); //避免輸出亂碼
function httpPost($url, $parms) {
$url = $url . $parms;
if (($ch = curl_init($url)) == false) {
throw new Exception(sprintf("curl_init error for url %s.", $url));
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 600);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
if (is_array($parms)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data;'));
}
$postResult = @curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($postResult === false || $http_code != 200 || curl_errno($ch)) {
$error = curl_error($ch);
curl_close($ch);
throw new Exception("HTTP POST FAILED:$error");
} else {
// $postResult=str_replace("\xEF\xBB\xBF", '', $postResult);
switch (curl_getinfo($ch, CURLINFO_CONTENT_TYPE)) {
case 'application/json':
$postResult = json_decode($postResult);
break;
}
curl_close($ch);
return $postResult;
}
}
$postUrl = "http://pujia.test.com/api/server.php";
$p=$_GET['p'];
if ($p =="selectuserinfo") {
$username = $_GET['username'];
$parms = "?action=selectuserinfo&username=" . $username . "";
} elseif ($p =="adserinfo") {
$username = $_GET['username'];
$userpassword = $_GET['userpassword'];
$parms = "?action=adserinfo&username=" . $username . "&userpassword=" . $userpassword . "";
} elseif ($p =="userlogin") {
$username = $_GET['username'];
$userpassword = $_GET['userpassword'];
$parms = "?action=userlogin&username=" . $username . "&userpassword=" . $userpassword . "";
}
$res = httpPost($postUrl, $parms); //$parms
$res = json_decode($res);
print_r(urldecode(json_encode($res)));
?>
❺ phpweb 怎麼調用其它網站的足球比分、外匯匯率等模塊
颯颯颯颯颯颯颯颯颯颯颯颯颯颯
❻ php 介面大概要怎麼寫
PHP 介面
介面
使用介面(interface),你可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。
我們可以通過interface來定義一個介面,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。
介面中定義的所有方法都必須是public,這是介面的特性。
實現
要實現一個介面,可以使用implements操作符。類中必須實現介面中定義的所有方法,否則 會報一個fatal錯誤。如果要實現多個介面,可以用逗號來分隔多個介面的名稱。
Note:
實現多個介面時,介面中的方法不能有重名。
Note:
介面也可以繼承,通過使用extends操作符。
常量
介面中也可以定義常量。介面常量和類常量的使用完全相同。 它們都是定值,不能被子類或子介面修改。
範例
Example #1 介面代碼示例
<?php
// 聲明一個'iTemplate'介面
interface iTemplate
{
public function setVariable($name, $var);
public function getHtml($template);
}
// 實現介面
// 下面的寫法是正確的
class Template implements iTemplate
{
private $vars = array();
public function setVariable($name, $var)
{
$this->vars[$name] = $var;
}
public function getHtml($template)
{
foreach($this->vars as $name => $value) {
$template = str_replace('{' . $name . '}', $value, $template);
}
return $template;
}
}
// 下面的寫法是錯誤的,會報錯:
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
private $vars = array();
public function setVariable($name, $var)
{
$this->vars[$name] = $var;
}
}
?>
Example #2 Extendable Interfaces
<?php
interface a
{
public function foo();
}
interface b extends a
{
public function baz(Baz $baz);
}
// 正確寫法
class c implements b
{
public function foo()
{
}
public function baz(Baz $baz)
{
}
}
// 錯誤寫法會導致一個fatal error
class d implements b
{
public function foo()
{
}
public function baz(Foo $foo)
{
}
}
?>
Example #3 多個介面間的繼承
<?php
interface a
{
public function foo();
}
interface b
{
public function bar();
}
interface c extends a, b
{
public function baz();
}
class d implements c
{
public function foo()
{
}
public function bar()
{
}
public function baz()
{
}
}
?>
Example #4 使用介面常量
<?php
interface a
{
const b = 'Interface constant';
}
// 輸出介面常量
echo a::b;
// 錯誤寫法,因為常量的值不能被修改。介面常量的概念和類常量是一樣的。
class b implements a
{
const b = 'Class constant';
}
?>
你也可以看看instanceof關鍵字的文檔。
❼ php代碼下從谷歌匯率介面獲得數據,怎麼指定放在html中
通過php中的file_get_contents讀取數據,再用file_put_contents寫入文件