【问题标题】:Getting website data on iphone using JSON使用 JSON 在 iphone 上获取网站数据
【发布时间】:2012-02-24 18:40:14
【问题描述】:

我正在处理一个涉及使用网络服务器的 iphone 项目,并且我正在获取 JSON 格式的数据。我在 mysql 数据库中创建了一个表“login_info”,它将存储用户 ID、用户名和密码。在网站上,我正在获取用户名和密码以登录并显示信息页面。

登录网站后我得到了其他页面,但要在 iphone 中显示该信息页面的数据,我必须将它们转换为 json 格式。我的问题是如何实现这一点,比如在网站上我应该获取信息页面,在 iphone 上,我应该在信息页面上获取值的 json 数组。

如果我在 php 中回显 json 数组,它只会将它与网页上的其他详细信息一起转储到网站页面上。我在想无论如何我可以在登录后在这里使用用户 ID,并且基于该用户 ID,如果我添加更多网页,我可以获得其他网页的详细信息。用户名和密码将仅用于登录目的,返回用户 ID 和以后的数据将使用该用户 ID 访问。请指导我,因为我在 web 部分没有经验并尝试学习。

【问题讨论】:

    标签: php iphone json


    【解决方案1】:

    无论你在 PHP 中回显什么,它都会作为 HTTP 响应被接收。我们已经在这篇文章中讨论了相同的内容。 sending a response from a php script to iOS,

    我建议您根据要发送回 iPhone 的任何信息构建一组数据。然后使用 PHP 的 json_encode() 函数将数组转换为 json。这样可以避免发送不必要的数据。

    更新:可以通过条件语句来实现。

    方法一:直接使用PHP的代理检测功能检测请求是否来自iPhone。

    function isIphone($user_agent=NULL) {
        if(!isset($user_agent)) {
            $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
        }
        return (strpos($user_agent, 'iPhone') !== FALSE);
    }
    
    if(isIphone()) {
        //the query is coming from iPhone, place your data you want to send back to iphone here
    } else {
        //query is not from iPhone, you can place rest of your code here
    }
    

    对于这种方法,您可以使用 javascript 来检测 iPhone,我建议您使用 PHP,因为如果有人禁用 javascript,那么它可能会导致您的代码出现意外行为,关于如何使用 Javascript 执行此操作,请查看以下内容链接(上面的例子取自同一个链接)。

    Detect iPhone Browser

    方法 2: 当您从 iPhone 查询时。发送一些 HTTP post 值,告诉 PHP 请求来自 iPhone。 IMO 最好使用 POST 然后 GET 因为有人可能会了解您的 URL 模式并可能会尝试调整它。您可以通过从 iPhone 发送另一个随机值并在服务器端检查它来解决此问题。

    所以而不是这个

    http://mysite.com?ua=iphone

    你可以试试发这个

    http://mysite.com?ua=iphone&ran=jkdkfjklj678

    然后在 PHP 中你可以使用检查它

    if(isset($_POST['ua']) && $_POST['ua'] == 'iPhone') {
        //The request is coming from iPhone, make sure to check the random value too
    } else {
        //The request is not from iPhone, render the other page.
    }
    

    方法三: 为什么不简单地将请求从 iPhone 发送到另一个 PHP 脚本而不是同一页面?这样你就可以将两个逻辑分开,避免弄乱脚本。

    例如。 对于 iPhone,你可以使用 iphone.php 和其余的 somepage.php ,对我来说这种方法更干净。

    【讨论】:

    • 如果您无法理解如何执行此操作。让我知道并解释一下。
    • 您好,Azhar,感谢您的回复。我已将信息页面上的数据转换为 json 数组并在 iphone 中成功访问它,但我想要的是登录后我不想在网页上显示该 json 数组,而是我想要用户可以查看详细信息的实际网页就像在普通网页上一样。
    • 答案已更新。如果对您有帮助,请不要忘记将其标记为已回答:)
    • 嗨,阿扎尔,非常感谢。你为我提供了好主意。
    猜你喜欢
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多