-4

我对通过 Javascript 编写 Photoshop 脚本有一个基本概念。

我想在我的 Photoshop 脚本中使用来自http://www.wunderground.com (Api) 的数据。

但不知道如何请求(访问)这些数据。

4

1 回答 1

2

我可以做那种事情,但我不确定它有多笨重——可能有更简单的方法我不知道——所以我们会看看其他人是否想出更好的方法。

首先,找到您的 PHP 所在的位置,如下所示:

which php
/usr/local/bin/php

所以我看到我的在/usr/local/bin/php. 我的 PHP 脚本的第一行需要它。

现在制作一个访问 Wunderground API 的独立 PHP 脚本。我没有密钥,所以我实际上并没有调用他们的 API,而是注释掉了调用,然后伪造了结果。所以我把它保存为/Users/Mark/tmp/wunderground.php

#!/usr/local/bin/php
<?php
  // $json_string = file_get_contents("http://api.wunderground.com/api/Your_Key/geolookup/conditions/q/IA/Cedar_Rapids.json");
  // $parsed_json = json_decode($json_string);
  // $location = $parsed_json->{'location'}->{'city'};
  // $temp_f = $parsed_json->{'current_observation'}->{'temp_f'};
  // echo "Current temperature in ${location} is: ${temp_f}\n";
  echo "Current temperature in 36";
?>

我像这样制作那个可执行文件:

chmod +x /Users/Mark/tmp/wunderground.php

并像这样运行它:

/Users/Mark/tmp/wunderground.php
Current temperature is 36

这一步必须在你做任何其他事情之前起作用,所以我在这里单独测试它......看起来不错!

现在我写了一个 Photoshop Actionscript/Javascript 的东西并将它保存为<Photoshop>/Presets/Scripts/Test.jsx

alert("Hello world!")
app.system("/Users/Mark/tmp/wunderground.php > /Users/Mark/result.txt")
var w = new File("/Users/Mark/result.txt");
w.open('r');
var str = "";
while(!w.eof)
   str += w.readln();
w.close();   
alert(str);

您会看到它PHP在第二行执行脚本并将结果保存在一个文件中,然后我读取并显示alert().

所以,我在编辑我的脚本后重新启动 Photoshop(它只在启动时解析它们),然后我进入 PhotoshopFile->Scripts并选择Test.jsx

这是它的外观:

在此处输入图像描述

于 2014-11-03T15:52:49.173 回答