![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.3ベストアンサー
- 回答日時:
> ただQUERY_STRING='定義済み関数'
> の部分を簡単にできないでしょうか?
引渡ししたい変数名をarrayにいれて
foreachでまわせば、いいんじゃないでしょうか。
たとえば
<?php
$hoge = 'hoge1';
$fuge = 'fuke1';
$fum[1] = 'AsA';
$a = array("hoge","fuge","fum");
$str="";
foreach ( $a as $val ) {
if ( is_array(${$val})) {
foreach ( ${$val} as $key => $val2 ) {
if ( strlen($str) ) $str .= "&";
$str.= "{$val}[{$key}]=$val2";
}
}
else {
if ( strlen($str) ) $str .= "&";
$str .= "$val=${$val}";
}
}
system ( "QUERY_STRING='$str' perl /path/xxx.pl") ;
?>
ただ、シェルに使える文字数には制限がありますので
あまり多いときは、POST形式にしてパイプで渡すやりかたに
かえたほうがよいとは思います。
といいますが、こういうところで余計な苦労するぐらいなら、
全部phpにしてしまうのが、本筋だとは思いますけど。
ややこしくなればなるほどでデバック工数増えますし
今後のメンテナンスとか機能拡張とか考えますと。
No.2
- 回答日時:
PHPとperlはメモリー空間別なので、ファイルか環境変数を使って引き渡すしかないと思います。
CGIからCGIを呼び出すのと同じ手法で、環境変数を利用して
<?php
$hoge = 'hoge1';
$fuge = 'fuge1';
system ( "QUERY_STRING='hoge=$hoge&fuge=$fuge' perl /path/xxx.pl") ;
?>
でどうでしょう。
受け取り側のperlは、普通のCGIのperlのようにGETデータを取得する方法が使えるので、出来合いのperl(CGI)があってこれをコールするだけなら、
perl側改造が不要になるというのがこの方法の利点です。
この回答への補足
ありがとうございます。
私のやりたいことができました。
ただQUERY_STRING='定義済み関数'
の部分を簡単にできないでしょうか?
膨大な量になるとphpでは改行はできますが管理しずらくなってしまって・・・
いっそphpのみ又はperlのみにすればいいのでしょうけどスクリプトの数がかなり多くて
すごく時間がかかるので悩んでいます
No.1
- 回答日時:
>phpで定義した関数をperlから読み込む、又はその逆をしたいのですが
>可能なのでしょうか?
直接は言語が違うのでむずかしいでしょう
phpからsystem系の関数で標準入出力経由で受け渡しするのが妥当でしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- その他(プログラミング・Web制作) HTMLを組み込むことができない言語 3 2022/05/21 10:05
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- PostgreSQL 【PostgreSQL】行の値の並びを変えるには 1 2023/03/21 16:46
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- PHP 掲示板を作成しておりアップロードファイルとメッセージを並べたいので、アドバイスお願い致します 2 2023/07/17 21:01
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tplを読みに行けません。
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
PHPからMSSQLへの接続結果の文...
-
フォームで戻った際に入力済み...
-
$filePath = './user_img/' . $...
-
.htaccessにphp_valueが使用できな
-
PHPのif文でその処理を途中で抜...
-
さくらサーバーでsessionが使え...
-
Apacheでhttp://localhost/が表...
-
phpでうまく画像がダウンロード...
-
Smarty includeでテンプレート...
-
現在位置より2つ上のディレク...
-
透過PNGが透過されない!!
-
「@$変数」の「@の意味は?」
-
インスタンス化に伴うメモリ消...
-
データ送信をボタンを押さずに...
-
PHP でmb_send_mailが上手くい...
-
error_reporting(0);にも関わら...
-
別ファイルの変数を呼び出した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Smartのカスタマイズでエラー
-
Smarty tpl内のifの書き方について
-
phpでサブルーチン
-
smarty3で変数表示について
-
PHPの関数って何種類ありますか?
-
smartyテンプレート読み込みに...
-
PHPでのページ送り機能
-
PHPフレームワーク環境でのSmar...
-
xserver Smarty PHP+MySQL
-
PHPってなんの略?
-
これからのPHP開発ではPDOを選...
-
HTML、CSS、PHPに便利なテキス...
-
phpで距離÷時間の方法
-
Pleskサーバ利用時にSmartyのas...
-
perlとphpの共用?
-
PHP+Smarty+MySQLで、データベ...
-
【php】動的なURLを静的に見せ...
-
Smartyのテンプレート
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
おすすめ情報