![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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を読みに行けません。
-
PHPの関数って何種類ありますか?
-
Pleskサーバ利用時にSmartyのas...
-
Smartyのテンプレート
-
フォントの色を変えるには?
-
【BAT(バッチ)ファイル】Web...
-
PHP8を使うと、大量のWarningが...
-
バッチを用いたフォルダの自動移動
-
ファイル一覧を表示しその画面...
-
文字化けについて
-
PHPのif文でその処理を途中で抜...
-
eclipseのエラーの意味
-
透過PNGが透過されない!!
-
空メールの作り方教えて欲しい...
-
3つ以上の論理積は利用可能なの...
-
fopenでファイルが開かない場合...
-
PHPのstrpbrk関数ってひらがな...
-
move_uploaded_fileのエラーについ
-
Apache(Ver 2.4.4)の設...
-
is_callable()の第二引数の使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Smartのカスタマイズでエラー
-
Smarty tpl内のifの書き方について
-
phpでサブルーチン
-
smarty3で変数表示について
-
smartyテンプレート読み込みに...
-
PHPの関数って何種類ありますか?
-
PHPでのページ送り機能
-
PHPフレームワーク環境でのSmar...
-
これからのPHP開発ではPDOを選...
-
PHPってなんの略?
-
xserver Smarty PHP+MySQL
-
Smartyのテンプレート
-
PHP+Smarty+MySQLで、データベ...
-
HTML、CSS、PHPに便利なテキス...
-
【php】動的なURLを静的に見せ...
-
Pleskサーバ利用時にSmartyのas...
-
perlとphpの共用?
-
phpで距離÷時間の方法
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
おすすめ情報