最近私はまだ私は初心者ですので、これは非常に単純な質問ですが、私は解決策を見つけることができませんでしたこの問題に。文字列からすべてのリンクを置き換える方法
私は、すべてのyoutubeリンクをiframeに置き換え、通常のリンクにURLの残りの部分を置き換えることを期待していたこのコードを持っていますが、それはうまくいかず、何が間違っているのかわかりません。 SQLデータベース上の別のテキストレコードを返し
<?php
if (strpos($text[$i], 'youtube.com') !== false) {
$text[$i] = preg_replace('/\s*[a-zA-Z\/\/:\.]*youtube.com\/watch\?v=([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i','<iframe width=\"420\" height=\"315\" src="http://youtube.com/embed/$1\" allowfullscreen></iframe>', $text[$i]);
} else {
$text[$i] = preg_replace('#(\A|[^=\]\'"a-zA-Z0-9])(http[s]?://(.+?)/[^()<>\s]+)#i', '\\1<a target="_blank" href="\\2">\\3</a>', $text[$i]);
} ?>
<div class="post">
<?php print $author[$i]; ?>
<?php print $time[$i]; ?>
<?php print $text[$i]; ?>
</div>
$テキスト[$ i]を。
すべてのURLをiframeに置き換えることは可能でしょうか、これを他の方法でリンクしますか? アドバイスをいただきありがとうございます。
で
watch=v?
を置き換えることができますか? 'text [$ i]'とは何ですか? – chris85@ chris85このコードは、SQLデータベースからの投稿を再表示します。 '$ text [$ i]'はデータベースの行テキストの値を返します。 –
'text [$ i]'のリテラル値がなければ、本当に助けになりません。文字は一度文字クラスに入れる必要があるだけで、文字クラスの '.'はエスケープする必要はありません。 – chris85