我有一個PHP專家的問題。好了,我在變量$行的數據,其中,我已經包括幾個功能,諸如源代碼:如何調用存儲在字符串變量中的函數? [PHP]
$ rows = "
gmap3_tools_create_marker (21.445985, 74.521431, 'marker with info window', '<a href=http://www.google.com> www.google.com </ a> some text some text photos.')
gmap3_tools_create_marker (22.445985, 73.521431, 'marker with info window', '<a href=http://www.google.com> www.google.com </ a> some text some text photos.')
gmap3_tools_create_marker (23.445985, 75.521431, 'marker with info window', '<a href=http://www.google.com> www.google.com </ a> some text some text photos.') "
這是在Drupal使用瀏覽的結果:生成使用視圖中的條目-view.tpl.php我通過將結果放置在代碼所需的gmap3-tools中的變量$ rows中來編輯位置。 此字符串是應用函數gmap3_tools_add_map標記所必需的對象標記數組。
gmap3_tools_add_map(array(
'mapId' => 'gmap-canvas',
'mapOptions' => array(
'zoom' => 15,
'center'=>'51.745985, 15.598451',
),
'markers' => array($rows),
'gmap3ToolsOptions' => array(
'defaultMarkersPosition' => GMAP3_TOOLS_DEFAULT_MARKERS_POSITION_CENTER,
),
'markerOptions' => array(
// Set custom shadow for all icons.
'shadow' => file_create_url(drupal_get_path('module', 'gmap3_tools') . '/images/druplicon-shadow.png'),
),
));
當然,上面的代碼不起作用。但是,如果你直接將結果(即上面的那個)粘貼到函數而不是字符串變量中,那麼$ rows是一個函數gmap3_tools_add_map,可以很好地應用標記。
我知道問題在於它沒有執行函數gmap3_tools_create_marker它們是以字符串形式發送的。
是否可以將字符串轉換爲函數?
我試過eval函數,但無濟於事。我想過call_user_func,但不幸的是我不知道如何咬,請幫忙。
必須在此數組中正確調用代碼。我不能給結果(通過eval)只有在數組中直接相同的函數,也不能作爲一個變量。
我這樣做了: $ pieces = explode('),',$ rows); $ pieces [0] = $ pieces [0]。 「) 「;
'markers' => array ($ pieces [0]) <- do not display
又如沒有工作 的foreach($件爲$ F){ $標記[] = EVAL(」 返回$ F;「); } '標記'=>數組($標記)
在另一方面直接將代碼粘貼到一個這樣的數組,一切都正確顯示。
'markers' => array (
gmap3_tools_create_marker (21.343556, 35.532361, 'Some text', '<a href="www.somesite.com"> some site </ a> <br> Some text'),
請幫助。
是否有任何東西阻止你分裂s tring(正則表達式)並將參數提供給'call_user_func_array'? – Rangad