Articles of PHP

如何使用PHP正确输出JSON数据

我正在开发一个Android应用程序,对于API我将我的请求发送到应该返回JSON数据的URL。 这是我在输出中得到的: 我希望它显示为Twitter响应: 我假设我的回复没有被JSON Formatter Chrome扩展程序解析,因为它的编码很糟糕,因此我的应用程序无法获得我需要的值。 这是我的PHP代码: 我想知道如何正确显示JSON数据,以便JSON Formatter和我的Android应用程序可以正确解析它。

stringByEvaluatingJavascriptFromString(iOS方法,什么是Android等价?)

在iOS应用中,我使用过 stringFromJavaScript = [webView stringByEvaluatingJavascriptFromString:@”document.getElementById(\”image\”).getAttribute(\”src”)”]; 获取webView上显示的图像的src目录。 我想为Android做同样的事情。 我有什么选择? 基本上意图是捕获路径,以便我可以通过电子邮件发送同一张图片…… 即。 “picture.php?image=%@”,stringFromJavascript 这样,当用户点击链接时,将加载相同的图像,或将其发布到Facebook等。

Android允许多个文件上传(最大150 MB)到PHP Server

我必须允许用户在我的Android应用程序到PHP服务器的单个请求中上传多个文件(可以是图像/video/音频)。 我正在使用REST Web服务。 对于此function,我使用以下代码: /* To upload the multiple documents */ public void uploadFile() { String charset = “UTF-8”; File[] uploadFileArray = new File[mediaList.size()]; for (int i = 0; i < mediaList.size(); i++) { uploadFileArray[i] = new File(mediaList.get(i).getMediaPath()); } try { MultipartUtility multipart = new MultipartUtility(upLoadServerUri, charset); for (int i = 0; i < mediaList.size(); […]

validationAndroid在Magento网站上传递的PayPal支付ID

我们正在为Magento 1.9网站制作Android应用程序。 在我们的网站上,我们已经成功整合了Paypal。 在应用程序中,客户可以进行付款,并且,使用Paypal SDK,我们在应用程序中获取交易ID。 Android团队会将交易ID传递给Magento,而在Magento,我们需要validation付款。 我们的Android团队需要Magento方面的API。 我们应该怎么做? 我们在完成订单后从paypal sdk获取交易ID 。 请访问github链接并搜索“validation服务器”(使用CTRL + F)。 在链接中,他们提到我们必须与服务器进行validation,那么在通过应用程序完成付款后如何validation服务器? Paypal团队向我们发送了一份请求样本: $apiContext = new ApiContext(new OAuthTokenCredential( “”, “”)); $payment = Payment::get(‘PAY-5YK922393D847794YKER7MUI’, $apiContext); 他们说我们必须使用上面的示例代码向PayPal发送请求。 一旦我们通过了pay id ,PayPal就会回复完整的付款细节。 如何在我们的网站上使用上述代码? Paypal团队给了我们这个github代码 。 他们说我必须使用整个SDK来获取付款细节。 我如何在Magento中使用它?

如何使用php本机函数和Android获取文件

我在我的网站的私人部分做了一个function,以获取并显示存储库的一些文件。 以下是我做的function: function getFilesChantier($devis, $cp) { // Si dossier cp n’existe pas on le créé if (!file_exists(_DOCS_ . ‘C’ . $cp)) { mkdir(_DOCS_ . ‘C’ . $cp, 0777, true); fopen(_DOCS_ . ‘C’ . $cp . ‘/index.html’, w); } if (!file_exists(_DOCS_ . ‘C’ . $cp . ‘/’ . $devis)) { mkdir(_DOCS_ . ‘C’ . $cp . […]

PHP中的AES解密的AES 128加密

我一直在尝试使用AES-128 CBC解密字符串,该CBC最初使用JAVA AES加密进行加密。 在java中使用PKCS7填充。 我尝试使用类似的PHP代码加密和解密。 但是我得到了不同的结果。 我的Java代码 import java.security.MessageDigest; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import android.util.Base64; /** * @author vipin.cb , vipin.cb@experionglobal.com * Sep 27, 2013, 5:18:34 PM * Package:- com.veebow.util * Project:- Veebow * */ public class AESCrypt { private final Cipher cipher; private final SecretKeySpec key; private AlgorithmParameterSpec spec; public […]

使用PHP / Javascript检测应用内浏览器(WebView)

我为iOS和Android开发了一个应用程序,它使用应用内浏览器(Webview)从我的网络服务器访问HTML文件。 我不希望用户在不使用该应用程序的情况下访问此文件。 如果用户使用应用程序访问文件或直接通过智能手机/平板电脑/计算机上的浏览器,是否有可能检测到? 我认为使用PHP的解决方案要好得多,因为Javascript可以关闭。 至少Google Analytics可以区分Safari和Safari(应用内)。 它应该适用于iOS和Android的每个版本。 谢谢你的帮助。 解 经过多次尝试,我终于find了适合我的解决方案! iOS:您可以使用用户代理检测Safari和应用内浏览器之间的差异。 可能有一个更好的解决方案,但它的工作原理。 // Safari (in-app) if ((strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Mobile/’) !== false) && (strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Safari/’) == false) { echo ‘Safari (in-app)’; } Android:应用程序中的软件包名称存储在PHPvariables$_SERVER[‘HTTP_X_REQUESTED_WITH’] 。 // Android (in-app) if($_SERVER[‘HTTP_X_REQUESTED_WITH’] == “com.company.app”) { echo ‘Android (in-app)’; } 正如Tim van Elsloo已经注意到HTTP标头可以伪造,这不是绝对安全的。

改造 – 不同设备上的不同API响应

问题完全像下面我有一个api可以提供一些数据和一个apk, 我用我的设备获得了api响应,并在模拟器上使用相同的apk获得了另一个不同的旧响应! 模拟器响应是最新的更新,而其他不同的响应在更改之前。 该应用程序使用改造而不缓存。 那可能是什么问题呢? 请求只包含一个标头(访问令牌)响应包含类似(ETag,Access-Control-Max-Age)的标头,但由于根本没有缓存,因此改装不应处理它们。 邮递员截屏: 等待一段时间所有设备都变得最新!

Android GCM消息已成功发送但未收到

我正在尝试使用GCM服务向我的设备发送推送通知。 我已经关注了服务器端函数的Android Hive教程 (现在已经不像其他许多问题和答案一样被弃用),这些函数看起来像预期的那样工作,因为我可以得到这种输出: {“multicast_id”:9131068334342174816,”success”:1,”failure”:0,”canonical_ids”:0,”results”:[{“message_id”:”0:1377441098827443%1d84a26ff9fd7ecd”}]} 但根据一些答案 ,接收此响应只意味着GCM服务器已接受该消息进行发送,但并未发送该消息。 所以,正如预期的那样,我的BroadcastReceiver没有收到任何东西。 这是我的BroadcastReceiver代码: public class GcmBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i(“gcm_debug”, “PushReceiver onReceive called”); Bundle extras = intent.getExtras(); GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context); String msgType = gcm.getMessageType(intent); if(!extras.isEmpty()){ if(GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(msgType)){ Log.i(“gcm_debug”, “Message send error”); }else if(GoogleCloudMessaging.MESSAGE_TYPE_DELETED.equals(msgType)){ Log.i(“gcm_debug”, “Message deleted”); }else if(GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(msgType)){ Log.i(“gcm_debug”, “Message received […]

什么是API令牌

我正在尝试找出处理我的移动应用程序(iOS和Android)和API(PHP)的用户身份validation的最佳方法。 根据我的研究,选项包括: HTTPS上的基本身份validation – 检查每个请求的用户的用户名/密码。 会话 – 发送每个请求的会话ID; 服务器维护状态。 因此,应用程序会在后续请求中为登录用户发送用户名/密码和服务器检查,就像我的网站一样。 API令牌 – 移动应用程序发送用户名/密码并接收令牌,然后将其附加到后续请求。 令牌存储在DB中并检查每个请求。 我猜我对API令牌的解释是不正确的,因为它们似乎与会话相同,因为我将会话ID存储在数据库中。 我可以纠正我对API令牌的解释。 它们适用于什么? 它们与会话ID的区别如何? API令牌有哪些优点? oAuth(如果我们简化其用途)只是一个用于创建“API令牌”的协议吗?