2009-08-31 10 views

Répondre

2

Vous pouvez utiliser JSON:

$ cat f1.php 
<?php 
$a = array(1, 2, 3); 
$cmd = 'ruby f2.rb \'' . json_encode($a) . '\''; 
printf("%s\n", `$cmd`); 
?> 
$ cat f2.rb 
require 'rubygems' 
require 'json' 

s = JSON.parse ARGV[0] 
puts s 
puts s.class 
$ php f1.php 
1 
2 
3 
Array 
+0

oui .... je fais cette méthode ... Cependant, php f1.php ne "puts" 1 2 3 .... –

+0

Hmm, vous voulez dire que vous ne pouvez pas reproduire mon exemple? Peut-être devrions-nous simplifier légèrement les choses et essayer: $ ruby ​​f2.rb '[1,2,3]' – DigitalRoss

+0

ça marche .... mais quand je fais exec ("ruby f2.rb '[1,2,3 ] '') le script PHP s'exécute, et il n'y a pas de "puts" ruby ​​ –

2

Vous pouvez le sérialiser vers YAML ou JSON.

+0

ou tout autre format sérialisé neutre pour cette matière (XML, CSV, etc.). –

+1

ok, j'ai sérialisé le tableau à JSON .... et je le passe comme argument à ruby ​​script .... mais ruby ​​se plaint à cause des guillemets doubles .... en outre, comment puis-je analyser JSON et le désérialiser en ruby ? –

0

quelque chose comme ce

require 'json' 

data = ARGV[0] 

result = JSON.parse(data) 
0

Vous pouvez sérialisation vous-même

1,67,12,320,341,901,77 


0, 1, 2, 3, 4, 5, 6 

Vous pouvez utiliser phps exploser la fonction pour ce faire. Mettez le tableau dans une étiquette cachée et laissez le rubis dissaymble le tableau.

Questions connexes