當前位置:首頁 » 編程語言 » php轉ios

php轉ios

發布時間: 2022-07-06 14:37:31

php怎麼寫IOS分發

這個先說原理!就是PHP返回一個URL給IOS端。然後IOS端接收並下載緩存顯示!OK

⑵ ios推送消息 用php推送怎麼實現

php實現ios推送的方法:首先把要發送的消息以及iPhone標識打包,並發送給APNS;然後查找有相應標識的iPhone,並把消息發送到iPhone;最後把發來的消息傳遞給相應的應用程序,並且按照設定彈出Push通知即可。 可以分為三個階段:
第一階段:應用程序把要發送的消息、目的iPhone的標識打包,發給APNS。
第二階段:APNS在自身的已注冊Push服務的iPhone列表中,查找有相應標識的iPhone,並把消息發送到iPhone。
第三階段:iPhone把發來的消息傳遞給相應的應用程序,並且按照設定彈出Push通知。
推送服務極光還不錯,極光多種消息類型,開發者可以輕松地通過極光發送各個移動平台的系統通知,還可以在控制台編輯多種富文本展示模板; 極光還提供自定義消息的透傳,客戶端接到消息內容後根據自己的邏輯自由處理。

⑶ ios怎樣搭建php伺服器

一、准備

  • 一台安裝了OS X操作系統的電腦(筆記本或一體機)

  • 電腦上安裝了Xcode

  • 能連接到互聯網——我們需要從網路上下載一些資源

  • 了解基本的PHP代碼基礎和Mysql執行語句

  • 二、基本步驟

  • 配置PHP Apache環境

  • 下載並安裝MySql

  • 下載並使用phpMyAdmin

  • 三、詳細操作

    1.配置PHP Apache環境

    Mac OS上自帶PHP Apache環境,所以不需要另外下載安裝包,只需要簡單配置一下即可。

    (1)由於Apache目錄是隱藏目錄,如果系統目前不顯示隱藏文件和文件夾,我們可以通過在Finder窗口下使用Command+Shift+G組合快捷鍵,或者在Finder狀態下點擊頂部狀態欄的「前往——>前往文件夾」,在打開的對話框中輸入

  • /etc/apache2

  • 進入apache2目錄,然後使用文本編輯器打開名為「httpd.conf」的文件,如圖1所示。

    圖1

    (2)「httpd.conf」的文件中查詢到如下代碼:

  • #LoadMole php5_mole libexec/apache2/libphp5.so

  • 將該代碼前面的#號刪除,從而在Apache中啟用PHP5模塊。然後保存文件。

    在保存文件時,如果提示沒有修改該文件的系統許可權時,右鍵點擊該文件,選擇「顯示簡介」,然後點擊最右下角的小鎖圖標,將Privilege修改為Read&Write即可。同時我們還需要修改apache2這個文件夾的許可權。

    (3)接下來,打開「系統偏好設置」,選擇「共享」選項卡,在打開的對話框中確保「互聯網共享」未處於勾選狀態(筆者的系統是10.12.3版本),如圖2所示。

    圖2

    (4)最後,在終端輸入如下指令重啟apache:

  • sudo apachectl restart

  • 此時,在瀏覽器輸入

  • http://localhost/

  • 並回車,如果出現如圖3所示的結果,說明PHP環境配置成功。

    圖3

    2.下載並安裝MySql

    (1)進入MySQL官網下載頁面,在「Select Operating System:」下拉列表中選擇Mac OS X之後,在給出的下載列表中選擇DMG格式的文件進行下載。
    (2)下載完成後打開,可以看到如圖4所示的文件。先點擊安裝文件"mysql-5.7.18-macos10.12-x86_64.dmg"。

    圖4

    (3)安裝完成後,MySQL會給出一個默認密碼,保存一下這個密碼,下面會用到。選擇「系統偏好設置」,搜索到「MySQL」,點擊打開,然後開啟MsSQL,並勾選「開機自啟動」選項,如圖5所示。

    圖5

    (4)打開終端,輸入如下指令:

  • mysql -version

  • 若提示「-bash: mysql: command not found」,就需要先配置mysql bin目錄的環境變數。

    首先,在Finder狀態下,點擊屏幕上方導航欄「前往——>前往文件夾」,在彈出來的對話框中輸入「/etc/bashrc」,點擊確定。

    然後,使用文本編輯打開「bashrc」文件(仍然別忘了修改這個文件的讀寫許可權),在末尾加入如下代碼:

  • #mysqlalias mysql='/usr/local/mysql/bin/mysql'alias mysqladmin='/usr/local/mysql/bin/mysqladmin'

  • 然後,我們要修改MySQL給出的默認密碼。打開終端,輸入如下指令並回車:

  • mysqladmin -u root -p password

  • 然後終端提示「Enter password:」在此輸入剛才安裝完MySQL之後分配的默認密碼,然後回車,提示「New password:」,在此輸入新的密碼並回車,在「Confirm new password: 」後再次輸入新密碼並回車,則密碼就重置完成了。
    (5)如果使用終端來進行MySQL操作,無疑是一件很痛苦的事情。所以一般我們使用phpMyAdmin來進行資料庫的操作。前往phpAdmin下載頁面根據自己的需要下載phpAdmin(我下載的是phpMyAdmin-4.7.0-all-languages.zip)。下載完成後,解壓縮,並將解壓縮之後的文件夾改名為phpMyadmin。然後將該文件夾復制到「/Library/WebServer/Documents/」目錄下。
    (6)進入phpMyadmin文件夾,復制一個名為「config.sample.inc.php」的文件,粘貼到當前目錄下,並改名為「config.inc.php」。
    (7)使用文本編輯器打開「config.inc.php」,將

  • $cfg['Servers'][$i]['host'] = 'localhost';

  • 修改為:

  • $cfg['Servers'][$i]['host'] = '127.0.0.1';

  • 保存後,在瀏覽器輸入

  • http://localhost/phpmyadmin/

  •   進入phpAdmin登入界面,用戶名輸入為root,密碼為在第(4)步設置的新密碼。進入後能正常使用phpAdmin來操作MySQL。



    作者:三創iOS和PHP開發
    鏈接:https://www.jianshu.com/p/c3f53ed7e184
    來源:簡書
    著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

⑷ php轉ios是否值得我做了兩年半的php,最近想職業轉做ios,這樣跨語言會不會影響以後找工作

肯定會不如從前 畢竟轉行以後在iOS領域你是新手

⑸ php加密文件 解密data 轉nsstring 為nil. rc4 ios

IOS:引入ios自帶庫 #include

先以DES加密演算法為例講解,DES的加密和解密都同用一個Key,下面兩個加解密函數如下:
//加密
-(NSString *) encryptUseDES:(NSString *)clearText key:(NSString *)key
{
//一般對加密的字元串採用UTF-8編碼 NSData存儲的就是二進制數據
NSData *data = [clearText dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
//See the doc: For block ciphers, the output size will always be less than or
//equal to the input size plus the size of one block.
//確定加密過後的字元串在內存中存放的大小,根據文檔,對於塊密碼方式(這個庫還包括流密碼方式)
//加密過後的字元串大小總是小於或等於加密之前數據的大小加上對應加密演算法的塊大小
//但看到一些大牛還這樣一下 & ~(kCCBlockSizeDES - 1) 目前不知道為嘛
size_t bufferSize = ([data length] + kCCBlockSizeDES) & ~(kCCBlockSizeDES - 1);
//void *buffer = malloc(bufferSize);//可以手動創建buffer,但之後要記得free掉
unsigned char buffer[bufferSize]; //定義輸出加密串所佔內存空間
memset(buffer, 0, sizeof(char)); //採用ios中宏定義好的方法分配空間,可免去手動free
size_t numBytesEncrypted = 0; //輸出加密串的位元組數

//加密數據,採用庫中的CCCrypt方法,這個方法會按次序執行CCCrytorCreate(),
// CCCryptorUpdate(), CCCryptorFinal(), and CCCryptorRelease() 如果開發者自己create這個對象,
//那麼後面就必須執行final、release之類的函數,CCCrypt方法一次性解決

// Byte iv[] = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};
//Byte iv[] = {1,2,3,4,5,6,7,8}; 加密所需的隨機字元
CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, //加密方式,kCCEncrypt加密 kCCDecrypt解密
kCCAlgorithmDES, //採用的加密演算法,內置包含AES、DES、
//3DES、其他還有四個,不知道是什麼
//後續討論
//加密額外參數,注意此處各個平台之間指定的時候要記得一樣
kCCOptionPKCS7Padding | kCCOptionECBMode,
[key UTF8String], //加密密匙 UTF8的字元串
kCCKeySizeDES, //密匙長度位元組 各演算法有對應的長度宏
nil, //隨機字元,可指定也可不指定,各平台之間不絕對
[data bytes], //待加密串的位元組長度
[data length], //待加密串的長度
buffer, //輸出已加密串的內存地址
bufferSize, //已加密串的大小
&numBytesEncrypted);

NSString* plainText = nil;
if (cryptStatus == kCCSuccess) {
NSData *dataTemp = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];
plainText = [GTMBase64 stringByEncodingData:dataTemp];
}else{
NSLog(@"DES加密失敗");
}
return plainText;
}

//解密
-(NSString*) decryptUseDES:(NSString*)cipherText key:(NSString*)key {
// 利用 GTMBase64 解碼 Base64 字串
NSData* cipherData = [GTMBase64 decodeString:cipherText];
size_t bufferSize = ([cipherData length] + kCCBlockSizeDES) & ~(kCCBlockSizeDES - 1);
//unsigned char buffer[1024];
unsigned char buffer[bufferSize];
memset(buffer, 0, sizeof(char));
size_t numBytesDecrypted = 0;

// IV 偏移量不需使用
CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt,
kCCAlgorithmDES,
kCCOptionPKCS7Padding | kCCOptionECBMode,
[key UTF8String],
kCCKeySizeDES,
nil,
[cipherData bytes],
[cipherData length],
buffer,
bufferSize,//1024,
&numBytesDecrypted);
NSString* plainText = nil;
if (cryptStatus == kCCSuccess) {
NSData* data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesDecrypted];
plainText = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
}
return plainText;
}

java和php平台的代碼實現:

Java代碼 收藏代碼
import java.io.IOException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class DES {

private byte[] desKey;

public DES(String desKey) {
this.desKey = desKey.getBytes();
}

public byte[] desEncrypt(byte[] plainText) throws Exception {
SecureRandom sr = new SecureRandom();
byte rawKeyData[] = desKey;
DESKeySpec dks = new DESKeySpec(rawKeyData);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key, sr);
byte data[] = plainText;
byte encryptedData[] = cipher.doFinal(data);
return encryptedData;
}

public byte[] desDecrypt(byte[] encryptText) throws Exception {
SecureRandom sr = new SecureRandom();
byte rawKeyData[] = desKey;
DESKeySpec dks = new DESKeySpec(rawKeyData);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key, sr);
byte encryptedData[] = encryptText;
byte decryptedData[] = cipher.doFinal(encryptedData);
return decryptedData;
}

public String encrypt(String input) throws Exception {
return base64Encode(desEncrypt(input.getBytes()));
}

public String decrypt(String input) throws Exception {
byte[] result = base64Decode(input);
return new String(desDecrypt(result));
}

public static String base64Encode(byte[] s) {
if (s == null)
return null;
BASE64Encoder b = new sun.misc.BASE64Encoder();
return b.encode(s);
}

public static byte[] base64Decode(String s) throws IOException {
if (s == null)
return null;
BASE64Decoder decoder = new BASE64Decoder();
byte[] b = decoder.decodeBuffer(s);
return b;
}

public static void main(String[] args) throws Exception {
String key = "abcdefgh";
String input = "a";
DES crypt = new DES(key);
System.out.println("Encode:" + crypt.encrypt(input));
System.out.println("Decode:" + crypt.decrypt(crypt.encrypt(input)));
}
}

php 方法一
Php代碼 收藏代碼
<?php
class DES1 {
var $key;
function DES1($key) {
$this->key = $key;
}
function encrypt($input) {
$size = mcrypt_get_block_size('des', 'ecb');
$input = $this->pkcs5_pad($input, $size);
$key = $this->key;
$td = mcrypt_mole_open('des', '', 'ecb', '');
$iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
@mcrypt_generic_init($td, $key, $iv);
$data = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_mole_close($td);
$data = base64_encode($data);
return $data;
}
function decrypt($encrypted) {
$encrypted = base64_decode($encrypted);
$key =$this->key;
$td = mcrypt_mole_open('des','','ecb','');
//使用MCRYPT_DES演算法,cbc模式
$iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
@mcrypt_generic_init($td, $key, $iv);
//初始處理
$decrypted = mdecrypt_generic($td, $encrypted);
//解密
mcrypt_generic_deinit($td);
//結束
mcrypt_mole_close($td);
$y=$this->pkcs5_unpad($decrypted);
return $y;
}
function pkcs5_pad ($text, $blocksize) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
function pkcs5_unpad($text) {
$pad = ord($text{strlen($text)-1});
if ($pad > strlen($text))
return false;
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad)
return false;
return substr($text, 0, -1 * $pad);
}
}
$key = "abcdefgh";
$input = "a";
$crypt = new DES1($key);
echo "Encode:".$crypt->encrypt($input)."<br/>";
echo "Decode:".$crypt->decrypt($crypt->encr

⑹ 如何用PHP/MySQL為 iOS App 寫一個簡單的web伺服器 PART1

作為一個iPhone/iPad開發者,能夠自己寫一個簡單的web伺服器將是很有用的。
例如,你可能希望在軟體啟動時顯示一些來自伺服器的更新,或者在伺服器端保存一些用戶數據。除了你的想像力,沒有什麼能限制你了。
在第一篇中,我們將會一步一步的建立一個web伺服器,基於promo
code
system(促銷碼系統),我在我的第一個軟體中使用的,Wild
Fables.在第二篇中,我們將會寫一個iOS
App來和它進行交互。
為了完成這個教程,你將需要一個web伺服器,並裝有MySQL和PHP。如果你沒有,那麼你有以下幾種選擇:
如果你想在你的Mac(free)上運行Apache/MySQL/PHP,有很多教程可以幫你。這里有一個教程

編程轉語言,PHP和IOS哪個好

有點裝X的跟你說,我14年到16年期間投5萬去參加了 這兩個語言的培訓。
可能因為入港時期不同。都是在廈門就業
1 php當時找了幾家公司 薪資都在7-8K
2 ios 15年的時候 我去的幾家公司都開8-11K
到16年,我也重新去了幾家,發現php的薪資水平差不多,都在10K 左右。

我是想說,IOS和php 在目前,都是很受歡迎的,只要技術過硬,都能有很好的發展,比如找到好的崗位,或比如自己創業。

⑻ 我是做php的 但我還想學一門 移動平台的語言` php轉android好還是ios好

各有利弊.
Ios相對來說簡單.IOS的就是蘋果產品使用的系統。ANdroid的產品太多樣化,就和你做網路開發一樣,如果世界上只有一種瀏覽器,是不是就方面太多了.

android的市場越來越大,感覺前景還是很不錯。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726