1

少し URL シュリンクを作成しました。現在、曲の URL リンクを出力する Soundcloud Javascript API があります。シュレッダーを使って縮めようとしています。シュリンカーはこれを使用して動作します:

<?php echo $bitly->shorten('http://google.com'); ?> //Equals google.com in short url format

私が実装しようとしている JavaScript コードは次のとおりです。

編集する前に:

 container.find('span.player-actions').html(
                '<a href="' + track.user.permalink_url + '" target="_blank">Soundcloud</a> | <a href="' + track.permalink_url + '/download" target="_blank">Download</a>'
        );

私が試した後:

container.find('span.player-actions').html(
                '<a href="' +  <?php echo $bitly->shorten('track.user.permalink_url'); ?> + '" target="_blank">Soundcloud</a> | <a href="' + track.permalink_url + '/download" target="_blank">Download</a>'
        );

どんな提案でも、私は何でも受け入れます。そして、これを機能させたいです!

4

2 に答える 2

3

それはすでに説明されていますが、この概念に慣れていない場合は、簡単な説明があります。

<?phpコード内のタグは、ページがユーザーのブラウザーに送信される前にサーバーで処理されます。実際、ブラウザはこれらのタグを受け取ることはありません。サーバー上の PHP 出力に置き換えられ、結果のページがユーザーに送信されます。

いくつかの間違いの結果として、PHP コードがユーザーのブラウザーに組み込まれることがありますが、他の非標準タグとして動作します。<?phpとの間のコンテンツは?>訪問者には見えません。

一方、JavaScript は、PHP が既に出力したもの (この場合) を使用して、ユーザーのブラウザーで動作します。JavaScript でページを変更しても、サーバーに送り返されません。実際、サーバーはそのことをまったく認識していないため、JavaScript によって出力された PHP コードを実行できません。

同様の結果を得るには、JavaScript コードから AJAX リクエストを送信する必要があります。基本的には、JavaScript によって開始される別の「ページ リクエスト」になりますが、現在のページを置き換えるのではなく、JavaScript コードに到着する PHP 出力でバックグラウンドで発生します。このようにして、JavaScript はPHPコードではなく PHP出力を出力します。これが可能である理由です。

于 2012-11-22T23:57:19.000 に答える
1

PHPはサーバー側であり、クライアント側であるJavaScriptの前に実行されるため、javascriptを介して生成された文字列でPHPを呼び出すことはできません。

この文字列を短くしたい場合は、縮小されたURLを返すphpページにajax呼び出しを行う必要があります。

于 2012-11-22T23:46:30.227 に答える