0

私は最近 PHP を使い始めました... 1 つのことを除いてすべてが良いです。別の php ファイルから関数を呼び出そうとしていますが、うまくいきません。おそらく本当に単純ですが、解決するのに役立つものは何も見つかりませんでした。

「required_once」を使用しましたが、まだ機能しません。誰かが私が間違っている場所を知っていますか?

<?php
require_once "/Applications/MAMP/htdocs/me/database_functions.php";
require_once "/Applications/MAMP/htdocs/me/encode_decode.php";

if (isset($_POST['url']) && $_POST['url'] != "http://")
{
//Get the url posted
$long_url = $_POST['url'];

//Create record in long_url table and return it's id
$long_id = create_long_url($long_url);

これまでのところすべてが機能しています..しかし、問題はこの次の関数呼び出しです..関数には入りません。

$short_url = $encode($long_id);


}...............etc...

encode_decode.php はこのように見えます...

<?php //encode_decode.php


function encode($number)
{
echo "<br />in encode";
//Encode numer to 6 char 
$s = strtr(rtrim(base64_encode(pack('i', $number)), '='), '+/', '-_');

echo $s;

return $s;
}

どんな助けでも大歓迎です...

4

4 に答える 4

3

関数呼び出しの前に $ は必要ありません

$short_url = $encode($long_id);

する必要があります

$short_url = encode($long_id);
于 2012-06-08T12:44:24.560 に答える
1

ドル記号は、関数が変数に格納されている場合にのみ必要です (そうではありません)。

$short_url = encode($long_id);
于 2012-06-08T12:44:19.077 に答える
1

関数の前のドル記号を削除します。PHP のドル記号は変数を示します

于 2012-06-08T12:44:35.123 に答える
0

他のすべての人が言ったように:

$short_url = encode($long_id);

ただし、require_once ステートメントをクリーンアップすることもできます。

define('DS', DIRECTORY_SEPARATOR);
require_once(dirname(__FILE__) . DS . 'database_functions.php');
require_once(dirname(__FILE__) . DS . 'encode_decode.php');

もちろん、define() と DS への参照の代わりに、ファイル名の前に「/」を付けることもできます。これは、ファイルが相対的であることも前提としています (ただし、ファイル名の前にフォルダーを付けるだけではありません)。これにより、サイトを別のサーバー (つまり、テスト、運用) から移動した場合に問題が発生しないことが保証されます。

于 2012-06-08T13:03:51.840 に答える